一个简单往文件写数据问题

liyi54188 2011-07-25 04:17:54
请问大虾我为什么往文件写进去的是乱码啊?
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#define MAX 256
int main(void)
{
int fd;
int i;
char buf[MAX];
fd = open("test.txt", O_RDWR | O_APPEND);
if(fd == -1)
{
perror("fail to open");
exit(1);
}
i = 0;
while(i < 80)
{
sleep(1);
buf[i] = i;
printf("%d\n", i);
if(write(fd, buf, 2) == -1)
{
perror("fail to write");
exit(1);
}
if(fsync(fd) == -1)
{
perror("fail to fsync");
exit(1);
}
i ++;
}
close(fd);
return 0;
}
...全文
32 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
justkk 2011-07-25
  • 打赏
  • 举报
回复
正常,不是乱码
如果需要文本,你可以用字符串的方式写入

sprintf(buf, "%d", i);
write(fd, buf, strlen(buf));
hjpraul 2011-07-25
  • 打赏
  • 举报
回复
txt文件,写进去的是int,即对应字节的的ascii码是你的i,ascii码转换成的字符。。。就是你所谓的乱码。

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧