如何使用write()系统调用将整数写入文件中
//write(fd,buffer,strlen(buffer));
//The buffer in the write() system call has to be an char[];
//if i want to write integer such as
for(int i = 0, i < 10; i++){
write(fd,i.??); // error
// How can i write the integer in to the file by using the write() system call
}
答案 0 :(得分:1)
如果要二进制输出:
write(fd, &i, sizeof(i));
如果要输出文本,请每行使用一个十进制数字:
char tmpbuf[50];
int n = sprintf(tmpbuf, "%d\n", i);
write(fd, tmpbuf, n);
如果要输出文本,则每个int为8个十六进制数字:
char tmpbuf[20];
int n = sprintf(tmpbuf, "%08X", i);
write(fd, tmpbuf, n);
如果不确定想要哪个,请尝试三种方式,然后查看生成的输出文件。 (如果没有“十六进制转储”程序或二进制编辑器,“二进制”输出将不容易看到。)
答案 1 :(得分:-2)
您可以先使用sprintf()
函数来创建字符串,然后在write()
中使用它,例如:
char number_s[2];
sprintf(number_s,"%2d",i);
write(fd,number_s,strlen(number_s));