Linux程式設計 read函式 write函式

2021-10-24 07:24:41 字數 1812 閱讀 3631

目錄

read函式

write函式

典型應用案例

#include ssize_t read(int fd, void *buf, size_t count);
size_t fread (void *ptr, size_t size, size_t nmemb, file *stream);
fd

buf

count

讀操作從檔案的當前位移量處開始,在成功返回之前,該位移量增加實際讀得的位元組數。

#include ssize_t write(int fd, const void *buf, size_t count);
size_t fwrite(const void *ptr,size_t size,size t nmemb, file *stream);
fd

buf

count

對於普通檔案,寫操作從檔案的當前位移量處開始。

在一次成功寫之後,該檔案位移量增加實際寫的位元組數。

#include #define buffer_len 1024

void copy(int fd1, int fd2)

else}}

}

#ifndef _io_h_

#define _io_h_

extern void copy(int fdin, int fdout);

#endif

#include "io.h"

#include #include #include #include #include #include #define buffer_len 1024

void copy(int fdin, int fdout)

}if (size <0)

exit(1);

}}

#include "io.h"

#include #include #include #include #include #include #include int main(int argc, char * ar**)

//開啟乙個待讀取的檔案

fdin = open(ar**[1], o_rdonly);

if(fdin < 0)

else

//開啟乙個待寫入的檔案

fdout = open(ar**[2], o_wronly | o_creat | o_trunc, 0777);

if(fdout < 0)

} //檔案複製

copy(fdin, fdout);

close(fdin);

close(fdout);

return 0;

}

gcc -o obj/io.o -iinclude -c src/io.c

gcc -o bin/cp -iinclude obj/io.o src/cp.c

bin/cp /etc/passwd ./passwd

核心驅動程式設計read函式填坑

最近在核心驅動程式程式設計過程中,發現read函式第一次讀出結果後,之後讀就陷入了阻塞。百思不得其解,嘗試更種方法填坑,還是沒解決辦法。後來深入了解read函式,參考網路大神對read函式的理解,才成功填坑。先看read函式原型 linux fs.h file operations結構體 ssize...

Linux檔案程式設計之 系統呼叫 read

1 相關函式說明 函式原型 int read int fd,void buf size t count 相關函式 readdir,write,fcntl,close,lseek,readlink,fread 表頭檔案 include 函式說明 從檔案描述符fd所指定的檔案中,讀取count個位元組,...

網路程式設計中read函式和write函式使用規範

位元組流套接字上的read和write函式所表現的行為不同於通常的檔案io。位元組流套接字上呼叫read和write輸入或輸出的位元組數可能比請求的數量少,因為核心中用於套接字的緩衝區是有限制的,需要呼叫者多次呼叫read或write函式。從描述符fd中讀取n個位元組,存入vptr指標的位置。思路如...