write调用

arden1019 2006-02-21 11:58:28
代码:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>

int main(void)
{
int writefd;

char wbuf[6]="222222";

if(writefd=open("fileseek",O_WRONLY)<0){
perror("open file error");
exit(-1);
}
printf("writefd is %d\n",writefd);

lseek(writefd,15,SEEK_SET);
write(writefd,wbuf,6);
}

输出:
writefd is 0
222222

为什么是 0?
各位帮忙啊~~
...全文
103 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
arden1019 2006-02-21
  • 打赏
  • 举报
回复
唉,《c缺陷与陷阱》看过了,还是出现这样低级错误...
yjf7888 2006-02-21
  • 打赏
  • 举报
回复

编译时把-Wall带上,并注意每个警告产生的原因,就可以避免这个错误了。
建议看《c缺陷与陷阱》
arden1019 2006-02-21
  • 打赏
  • 举报
回复
多谢斑竹...
fierygnu 2006-02-21
  • 打赏
  • 举报
回复
if(writefd=open("fileseek",O_WRONLY)<0){
===
=的优先级最低。应该是
if((writefd=open("fileseek",O_WRONLY))<0){

23,121

社区成员

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

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