C で低レベル関数を使用しようとしていて、STDIN から読み取り、その情報をファイルに保存したいと考えています。
int dash, c;
char buffer[1024];
if((dash = creat("file.txt", S_IRWXU)) < 0)
perror("creat error");
while ((c = read(STDIN_FILENO, buffer, sizeof(buffer))) > 0) {
if (write(dash, buffer, c) != c)
perror("write error");
「file.txt」にアクセスして読み取り、画面に印刷するか、別のファイルに保存する方法を理解するのに問題があります。'read("file.txt", buffer, sizeof[buffer])' を使用しますか?
編集 「file.txt」を作成した後、別のファイルを開きたいとします。file1(argv [3])と言って、「file.txt」をfile1(agrv [3])にダンプします。これは機能しますか?
fd = open(argv[3], O_RDWR); //open 3rd arg for writing
fd_2 = open("file.txt", O_RDWR); //open created file
do {
n = read(fd_2, buffer, sizeof(buffer));
if (n < 0)
perror("read error argv[2]"); //greater 0=succesful
write(STDOUT_FILENO, buffer, n); // this is where I'm stuck
} while (n == sizeof(buffer));
close(fd);
両方のファイルを開いていますが、「file.txt」を argv[3] に書き込む方法がわかりません。