日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux应用程序接收文件,Linux应用程序学习之文件编程

發布時間:2024/9/19 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux应用程序接收文件,Linux应用程序学习之文件编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux應用程序學習之文件系統調用函數編程

上一篇我們了解了Linux系統下函數庫的設計方法,這一章我們就來學習一下linux系統下常用的文件操作函數,在進行系統文件操作函數介紹前,我們首先要明白一個術語:文件描述符。何為文件描述符?在linux系統中,所有打開的文件都有一個數字對應,由系統來分配這個數字,這個數字就稱為文件描述符。

具體使用方法我們后面編程來介紹,下面我們就來看看函數介紹。

有關Liunx系統中文件編程用到的常用的函數有七個,在此我不打算詳細列舉其用法之類的,而是介紹一種函數學習方法,授之以魚不如授之以漁,可以讓我們更好掌握這些函數的使用。

Linux文件編程常用的函數有

打開文件函數:open

創建文件函數:creat(open也可創建文件)

讀取文件函數:read

寫入文件函數:write

定位文件函數:lseek

復制文件函數:dup

關閉文件函數:close

我們如何去了解這些函數內?打開我們的Liunx系統終端,例如我們想了解open函數的相關信息,可以在我們的命令行界面輸入

man??open

就可以查詢我們的open函數的相關信息了,如圖所示:

如此便有我們需要函數的詳細介紹了,稍微懂點英文便可以看懂了,需要說明的是,我們的man 命令分了很多章節,第一個章節是命令,第二個章節是系統調用函數,第三個章節是庫函數,每當我們man一個關鍵字的時候,首先是從我們的第一個章節也就是命令章節來查找,如果沒找到就進入下一個章節查找,我們的read關鍵字是我們的一個liunx下的命令,因此在第一個章節中也有,所以我們只是man read只會出來read這個命令的信息,而不是相關函數的信息,如果我們要查看函數的信息,由于read屬于系統調用函數,屬于第二個章節,因此我們可用下面的命令

man?2? read

write也是一樣的。

好了,介紹完上面的函數太過于理論,下面就以一個實例編程來加深對其的直觀感受吧。

我們就實現linux命令cp所完成的功能吧,即將一個文件復制到另外一個位置(參照學習視頻)。下面是程序代碼,我已做好詳細的注釋。

#include

#include

#include

#include

#include

void main(int argc, char *argv[])

{

int fd_s;

int fd_t;??????? //定義源文件和目標文件的文件描述符

int count = 0;?? //每次復制的字節數

char buf[128];?? //定義一個數據緩沖區,一次讀取128個字節

fd_s = open(argv[1] , O_RDONLY);? //打開源文件

//由于目標文件沒有,所以要創建,用open函數可以,用creat函數也行

fd_t = open(argv[2] , O_RDWR|O_CREAT,0666);

while( (count = read(fd_s , buf,128))>0) ? ? ? ? ? ? ? ? ? ? ? ? ? //讀取源文件數據,這個位置要判斷是否還有數據可讀

write(fd_t , buf , count); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //讀完之后就是寫如數據了,這個一定要寫成count,因為源文件字節數不一定是128的整倍數,讀多少就寫多少

close(fd_s);

close(fd_t);

}

下面我們就在linux下面運行我們的程序看看結果:

以上就是我學習linux系統下文件編程的總結,希望得到指正。

總結

以上是生活随笔為你收集整理的linux应用程序接收文件,Linux应用程序学习之文件编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。