文件进行写操作问题请教

tracyjk 2010-07-08 05:23:37
int xd,a,b;
int volumn=1;
char dev[]="/usr/rc.sh";
int volue[2];

xd=open(dev,O_RDWR);
if(xd<0)
{
perror("fail to open dev");
}
lseek(xd,35,SEEK_CUR);
volue[0]=volumn;
volue[1]='\0';
a=sizeof(int);
printf("a %d\n",a);
printf("volue[0] is %d\n",volue[0]);
a=write(xd,volue,4);
printf("a %d\n",a);

close(xd);
return 0;


要对终端中/USR/RC.SH文件进行写操作,程序执行后有对文件进行写入操作,但在写入的位置显示的不是我想要的“1”而是乱码。看了下write函数并查看了下int占多少字节后把输入的字节数改成了4也还是这个问题。
请各位大牛不吝赐教
...全文
41 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
__Jun__ 2010-07-08
  • 打赏
  • 举报
回复
要想打开文件看就是显示1那你就要以字符串形式写入!
比如:
char buf[]="1";
write(fd, buf, strlen(buf));
...
honemay 2010-07-08
  • 打赏
  • 举报
回复
写只能写字符串,你写的是int整数
然后你用write写的时候把整数1转换成了char类型,也就是acsll码为1...acsll为1的那个符号就是你写入了文件中的内容!

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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