當前位置:首頁 » 操作系統 » readlinux

readlinux

發布時間: 2022-01-19 19:18:33

linux read(0,buf,100)其中的fd=0是什麼意思

shell下輸入「man 2 read 」 你先看看。
ssize_t read(int fd, void *buf, size_t count);
意義:從文件描述符fd所指向的文件中讀取count個位元組的數據到buf所指向的緩存中。
文件描述符是由無符號整數表示的句柄,進程使用它來標識打開的文件。
文件描述符0代表標准文件。
fd是這么來的。
fd=(open或creat成功調用時的返回值)。
我上學是書上就寫這么多了。

Ⅱ linux 中read命令後面-p是什麼意思呢

p是prompt的縮寫,即由這個開關項給出提示信息,例如
read -p 'please input you choice:\n' choice
回車後屏幕會顯示:
please input you choice:
那麼之後你輸入的東西就會被保存到choice變數中了

另外,read是bash的內建命令,這些選項的作用都可以通過man命令獲得的

Ⅲ linux 中 read 命令是什麼意思

read命令用於讀取終端輸入。
類似於c語言中的scanf()函數.

Ⅳ linux 下編寫的一個帶超時限制的read()

輸入輸出都有緩沖區概念,在輸入hello world不回車,其實已經放到了read緩沖區中,在超時關閉read()的時候,系統會flush緩沖區,其實就是把它放到內存中,所以這時候n已經有值了,write當然會輸出hello world了。

Ⅳ 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下怎麼做read5

叫RAID5^.^ 做RAID5的話 需要同規格硬碟5-7塊為佳…… 你要是僅僅防止丟數據,可以考慮採用RAID1,兩塊就可以了

Ⅶ linux 中$,read分別是什麼意思

樓上的都有理,$這個代表的是普通用戶的意思,我覺得你應該問的是shell裡面的意思,shell裡面就是提取變數。read 讀取鍵盤的輸入作為程序往下執行的開始。

Ⅷ linux read讀取問題

注意:以下實例省略了錯誤處理。
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

typedef struct
{
char name[20];
int age;
} Person;

int main(int argc, char **argv)
{
// open
int fd = open("name.file", O_RDWR|O_CREAT, 0666);
// write
Person zhang3;
memset((void*)&zhang3, 0x00, sizeof(Person));
strcpy(zhang3.name, "zhang3");
zhang3.age = 42;
write(fd, (void*)&zhang3, sizeof(Person));
// lseek
lseek(fd, 0, SEEK_SET);
// read
Person li4;
memset((void*)&li4, 0x00, sizeof(Person));
read(fd, (void*)&li4, sizeof(Person));
printf("%s\n", li4.name);
printf("%d\n", li4.age);
// close
close(fd);
return 0;
}

Ⅸ 如何使用linux read命令

read是讀取你在屏幕上內容的。。。。如果你不輸入,肯定是null

Ⅹ linux下c語言編程read()函數的問題

返回-1的時候,要根據錯誤碼來判斷原因,請看下面的函數說明:

表頭文件 #include<unistd.h>
定義函數 ssize_t read(int fd,void * buf ,size_t count);
函數說明 read()會把參數fd 所指的文件傳送count個位元組到buf指針所指的內存中。若參數count為0,則read()不會有作用並返回0。返回值為實際讀取到的位元組數,如果返回0,表示已到達文件尾或是無可讀取的數據,此外文件讀寫位置會隨讀取到的位元組移動。
附加說明 如果順利read()會返回實際讀到的位元組數,最好能將返回值與參數count 作比較,若返回的位元組數比要求讀取的位元組數少,則有可能讀到了文件尾、從管道(pipe)或終端機讀取,或者是read()被信號中斷了讀取動作。當有錯誤發生時則返回-1,錯誤代碼存入errno中,而文件讀寫位置則無法預期。
錯誤代碼 EINTR 此調用被信號所中斷。 EAGAIN 當使用不可阻斷I/O 時(O_NONBLOCK),若無數據可讀取則返回此值。 EBADF 參數fd 非有效的文件描述詞,或該文件已關閉。

熱點內容
單片機android 發布:2024-09-20 09:07:24 瀏覽:760
如何提高三星a7安卓版本 發布:2024-09-20 08:42:35 瀏覽:659
如何更換伺服器網站 發布:2024-09-20 08:42:34 瀏覽:306
子彈演算法 發布:2024-09-20 08:41:55 瀏覽:284
手機版網易我的世界伺服器推薦 發布:2024-09-20 08:41:52 瀏覽:812
安卓x7怎麼邊打游戲邊看視頻 發布:2024-09-20 08:41:52 瀏覽:158
sql資料庫安全 發布:2024-09-20 08:31:32 瀏覽:89
蘋果連接id伺服器出錯是怎麼回事 發布:2024-09-20 08:01:07 瀏覽:503
編程鍵是什麼 發布:2024-09-20 07:52:47 瀏覽:655
學考密碼重置要求的證件是什麼 發布:2024-09-20 07:19:46 瀏覽:479