導航:首頁 > 編程系統 > readlinux

readlinux

發布時間:2023-06-17 14:27:10

『壹』 linux系統調用函數read()

open系統調用

open函數的三個參數:

(1)path是已經存在的文件的路徑;

(2)oflags參數:若值為 O_RDONLY ,就以只讀方式打開文件;

若值為 O_WDONLY,就以只寫方式打開文件;

若值為 O_RDWR,就以讀寫方式打開文件;

(3)參數mode:文件的許可權,對於一個已經存在的文件,參數mode是沒有用的,通常將其省略,因此這種情況下open調用只需兩個參數。

創建新文件:

前面已經說到,當文件不存在時,open會創建一個新文件(僅能是普通文件),我們只需要用 or操作向open的 oflags參數中加入標志O_CREAT即可。這樣可以創建一個新的只讀文件,但是這沒有任何意義,因為所創建的新文件沒有任何可讀內容。因此一般需要 O_CREAT與 O_WRONLY或 O_RDWR一起使用,此時就需要mode參數了。

例如:

int fd = open("/home/LY/newfile",O_RDWR | O_CREAT,MODE_FILE)

參數mode僅在創建新文件時有效,對於一個已經存在的文件,它沒有任何作用。

關於open的flags參數:

除了以上介紹的 open標志外,open還有許多標志,具體的如下表所示:

標志

解釋

O_RDONLY

只讀方式打開

O_WRONLY

只寫方式打開

O_RDWR

讀寫方式打開

O_APPEND

每次寫都追加到文件的尾端

O_CREAT

若文件不存在則創建文件

O_DSYNC

設置同步I/O方式

O_EXCL

如果文件已存在,則出錯;必須與O_CREAT一起使用

O_NOCTTY

不將此設備作為控制終端

O_NONBLOCK

不等待命名管道或特殊文件准備好

O_RSYNC

設置同步I/O方式

O_SYNC

設置同步I/O方式

O_TRUNC

將其長度截短為0

write系統調用

write函數的三個參數:

(1)fildes: 文件描述符
(2)buf:指定寫入數據的數據緩沖區
(3)nbytes:指定寫入的位元組數

函數返回值:

成功:已寫的位元組數

-1 :出錯

0:未寫入任何數據

例子:

運行結果:

read系統調用

read函數的三個參數:

(1)fildes:文件描述符

(2)buf:指定讀入數據的數據緩沖區

(3)nbytes:指定讀入的位元組數

函數返回值:

成功:已讀的位元組數

0:未讀入任何數據

-1:出錯

例子:

運行結果:

close系統調用

通過對 close進行分析,我們會發現close並沒有做什麼實質工作,它沒有刷新任何內核緩沖區,而僅僅是使文件描述符可以重用。

『貳』 linux中read,write和recv,send的區別

Linux的recv、send函數和read、write函數都可以用於套接字編程。
區別:
1、recv、send只用於套接字通信;
2、read、write是底層系統調用,只要是文件操作就都可以用, 比如套接字操作,套接字描述符屬於是文件描述符的一種,套接字本身在Linux上就叫做套接字文件。
所以read、write函數不光可以用於套接字編程,也可以用於讀取其他各種文件,比如用於文件編程讀寫普通文件。

閱讀全文

與readlinux相關的資料

熱點內容
電腦編程打完代碼如何整理格式 瀏覽:635
微信白拿官網 瀏覽:362
安卓系統怎麼不更新系統文件 瀏覽:976
appsupport什麼意思 瀏覽:705
html5中加入js 瀏覽:441
美服applestoreid 瀏覽:889
微信數據文件能清嗎 瀏覽:107
圖片編輯到文件里列印怎麼有重影 瀏覽:593
舟山四軸編程培訓哪個學校好 瀏覽:542
沒加別人QQ可以發word文件 瀏覽:51
手機桌面的文件路徑 瀏覽:892
改款新寶來怎麼使用手機app 瀏覽:281
dede工具 瀏覽:507
5g網盟app怎麼下載 瀏覽:486
微信備份老是連接中斷 瀏覽:886
出台多少份文件 瀏覽:380
鞋子怎麼搭配衣服的app 瀏覽:755
文件名使用的通配符的符號是什麼 瀏覽:916
lol分卷文件損壞怎麼辦 瀏覽:276
6分管車螺紋怎麼編程 瀏覽:732

友情鏈接