【发布时间】:2023-03-17 20:46:01
【问题描述】:
我正在尝试逐个字节、2 个字节、4 个字节等以块的形式将其写入文件。我目前有这段代码,但是卡住了。
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include<stdio.h>
#include<fcntl.h>
#include<errno.h>
int main(int argc, char* argv[]){
char buf[1];
//creating output file
int outfile = open(argv[1], O_CREAT | O_APPEND | O_RDWR, 0666);
int infile = open(argv[2], O_RDONLY);
fread = read(infile, buf, 1);
printf("%s\n", buf);
write(outfile);
close(infile);
close(outfile)
}
【问题讨论】:
-
你需要一个循环。
-
使用
read/write处理单个字节非常低效。最好使用缓冲 IO。read/write也是很低级的。您需要大量代码来处理不完整的 IO。 -
printf("%s\n", buf);在读取单个字节时不好。也许你想要printf("%c\n", buf[0]);?
标签: c file-io output byte write