【C言語】システムコール関数でファイル入出力(1)
write()関数とread()関数
writeの例.
#include<stdio.h> #include<hogehoge.h> int main(void){ int fd; char filename = "test.txt"; char message = "ここにファイル出力したい文字列を書く"; // ファイルオープン fd = open(filename, O_WRONLY); // ファイル書き込み write(fd, message, strlen(message)+1); // ファイルクローズ close(fd); return 0; }
write関数
fd - 対象ファイルのファイルディスクリプタ
message - 書き込む文字列
strlen(message)+1 - 書き込み文字列の長さ
readの例.
#include<stdio.h> #include<hogehoge.h> #define BUF_LEN 1024 int main(void){ int fd; char filename = "test.txt"; char buf[BUF_LEN]; // ファイルオープン fd = open(filename, O_RDONLY); // ファイル書き込み while ( ( n =read(fd, buf, BUF_LEN) ) > 0 ){ printf("%s", buf); } // ファイルクローズ close(fd); return 0; }
read関数
fd - ファイルディスクリプタ
buf - 読み込んだ文字列を格納する箱
BUF_LEN - 一回で読み込む文字列の長さ(バイト数)
readの返り値として、「読み込んだバイト数」が返ってきます。
つまりこのwhile文は、まだ読み込む文字がある場合はずっとループする、ということ。
BUF_LENで指定したサイズ(今回は1024)ずつ読み込み、表示します。
0 件のコメント:
コメントを投稿