linux unix學習之檔案程式設計一

2021-06-22 13:28:31 字數 1663 閱讀 4071

linux檔案程式設計操作中有:

一、系統檔案呼叫:只能在linux系統中呼叫

二、c檔案庫函式呼叫:可以在任何系統中呼叫

系統檔案的呼叫:

需要的包含的標頭檔案:

#include

#include

#include

1.open函式:

int open( const char * pathname, int flags);

int open( const char * pathname, int flags, mode_t mode);

pathname:為你要開啟的所在那個路徑的檔名的字串

flags:你要以什麼方式開啟檔案,它參數列如下:

mode:建立什麼型別的檔案

常用的有:

s_irusr:可讀

s_iwusr:可寫

s_ixusr:可執行

s_irwxu:可讀、寫、執行

除了使用巨集來定義訪問許可權之外,還可以用數字表示檔案的訪問許可權

可執行——1

可讀——4

可寫——2

上述的數值之和,則為可讀寫執行---6

無任何許可權——0

2.creat函式:

int creat(const char * pathname, mode_t mode);

pathname:你要在那裡新建的檔名字串

mode:參考open函式

creat函式的簡單應用例子:

#include

#include

#include

#include

#include

void create_file(char *filename)

else

}int main(int argc,char *argv)

create_file(argv[1]);

exit(exit_success);}

返回值:返回新的檔名,返回-1則為錯誤

3.close函式:

int close(int fd);

當使用完檔案後若已不再需要則可使用close()關閉該檔案, 二close()會讓資料寫回磁碟, 並釋放該檔案所占用的資源。引數fd為先前由open()或creat()所返回的檔案描述詞。

4.read函式:

ssize_t read(int fd,void * buf ,size_t count);

read()會把引數fd 所指的檔案傳送count個位元組到buf指標所指的記憶體中。若引數count為0, 則read()不會有作用並返回0。返回值為實際讀取到的位元組數, 如果返回0, 表示已到達檔案尾或是無可讀取的資料, 此外檔案讀寫位置會隨讀取到的位元組移動。

5.write函式:

ssize_t write (int fd,const void * buf,size_t count);

作用:write()會把引數buf所指的記憶體寫入count個位元組到引數fd所指的檔案內。

fd:是指要寫入位元組的檔案fd。

程式例子:

#include

#include

#include

#include

#include

int main()

執行結果:linux programmer!

linux unix學習之檔案程式設計二

6.lseek函式 off t lseek int fildes,off t offset int whence fildes 已開啟的檔名 offset 為根據引數whence來移動讀寫位置的位移數 whence seek set 引數offset即為新的讀寫位置。seek cur 以目前的讀寫位...

Linux UNIX網路程式設計筆記(四) UDP程式設計

udp客戶 伺服器的套接字函式 recvfrom 函式 接收資料,類似標準read include include ssize t recvfrom int sockfd,void buf,size t len,int flags,struct sockaddr from,size t addrle...

python學習之dedecms exp編寫

針對織夢5.7 sp1遠端檔案包含getshell exp編寫,漏洞分析請檢視網上分析,不再贅述。exp coding utf 8 import requests import time def dada url url index url install index.php khtml,like ...