目錄read函式
write函式
典型應用案例
#include ssize_t read(int fd, void *buf, size_t count);
fdsize_t fread (void *ptr, size_t size, size_t nmemb, file *stream);
buf
count
讀操作從檔案的當前位移量處開始,在成功返回之前,該位移量增加實際讀得的位元組數。
#include ssize_t write(int fd, const void *buf, size_t count);
fdsize_t fwrite(const void *ptr,size_t size,size t nmemb, file *stream);
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指標的位置。思路如...