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应用程序学习之文件编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux sqlplus权限不足,sq
- 下一篇: 删除ubuntu linux系统,从Wi