初学unix环境编程 求助

binarystar2006 2014-01-23 03:31:32
自己写了一个简单函数 就是创建文件 然后向文件写数据
但是数据被打印到了终端 不能写到文件里 求帮助
#include "apue.h"
#include <fcntl.h>
char buf1[] = "congratulation";

int
main (void){
int fd,bytes;
off_t offset;
if(fd = open("myfile.txt", O_RDWR|O_EXCL|O_CREAT, FILE_MODE) == -1)
printf("creat/open fail\n");
else
printf("myfile.txt fd = %d\n",fd);
if(offset = lseek(fd, 0, SEEK_CUR) == -1)
printf("cannot lseek\n");
else
printf("lseek file with nothing ,lseek = %d\n",offset);
if(bytes = write(fd, buf1, 14) == -1)
printf("write fail\n");
else
printf("write bytes = %d\n",bytes);

exit(0);
}
...全文
239 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
binarystar2006 2014-01-23
  • 打赏
  • 举报
回复
引用 1 楼 u012821210 的回复:
运算符优先级问题吧if(bytes = write(fd, buf1, 14) == -1)改成if((bytes = write(fd, buf1, 14)) == -1)
哦 明白了 之前的都有问题 多谢
binarystar2006 2014-01-23
  • 打赏
  • 举报
回复
引用 1 楼 u012821210 的回复:
运算符优先级问题吧if(bytes = write(fd, buf1, 14) == -1)改成if((bytes = write(fd, buf1, 14)) == -1)
多谢楼上 确实是个问题 已经修正 不过本质问题还是没解决 为什么数据都打印到终端了 没有写到文件里呢
SweetTimeRose 2014-01-23
  • 打赏
  • 举报
回复
运算符优先级问题吧if(bytes = write(fd, buf1, 14) == -1)改成if((bytes = write(fd, buf1, 14)) == -1)

1,324

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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