【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 件のコメント:
コメントを投稿