我有一个结构,我想写一个常规文件作为一个记录,用逗号分隔字段.例如
struct A {
int a;
int b;
} test;
Run Code Online (Sandbox Code Playgroud)
给定test.a=1和test.b = 2,常规文件将具有相应的1,2一行记录.另一个要求是,我想用一个系统调用来编写整个结构.所以,我创建了一个char buffer[10],将int a,b的值存入缓冲区,用逗号分隔和换行符,并使用Linux系统write()调用来写缓冲区.
问题是记录最终在文件中以二进制形式出现.这是直观的,因为我从变量中取走了"类型",我将它们存储在char数组中.我可以使用标准的io,但我想学习,如何通过标准的Linux系统调用以及概述的约束来实现预期的结果.我怎样才能保持变量的"典型性".通过类型我的意思是,如果变量是int类型,则常规文件应该具有人类可读的数字.
fprintf(fh, "%d,%d\n", test.a, test.b);如果你打开输出文件,你要做的就是这样fopen.如果你真的必须write()出于某种原因使用,你可以sprintf(buffer, "%d,%d\n", test.a, test.b); write(fd, buffer, strlen(buffer));.
| 归档时间: |
|
| 查看次数: |
182 次 |
| 最近记录: |