红联Linux门户
Linux帮助

谁能找到这个糟糕小程序的隐蔽错误

发布时间:2013-05-25 10:18:24来源:红联作者:yuemotu
#include
#include

#include
#inlcude
#include


main(int argc,char *argv[])

{

int val,m;

char buf[18]="hellow my world";

char auf[18];

if(argc!=2){printf("please put one file name");exit(1);}

if(val=open(argv[1],O_RDWR|O_EXCL|O_CREAT,S_IRWXU)<0){printf("open error");perror("dd");}
if(m=write(val,buf,14)!=14)exit(1);printf("%d",m);

if(lseek(val,0,SEEK_SET)==-1){printf("lseek erron");perror("dd");}

m=read(val,auf,14);

auf[m]=\0;
printf("zzzzzzz%szzx\n:s",auf);

if(lseek(val,2L,SEEK_SET)==-1){printf("lseek erron");exit(-1);}

if(read(val,auf,18)<0){printf("read error");exit(-1);}

printf("%s",auf);
close(val);
unlink("./argv[1]");

}
文章评论

共有 5 条评论

  1. jeffkuang1 于 2013-10-14 15:39:12发表:

    main函数应该是int类型,最后退出要有return语句。

  2. 烟消云散 于 2013-06-05 23:49:44发表:

    程序的第四行应该是#include//这里应该是你输入错误。
    程序的第十六行应该是auf[m]='\0';//这个代码表示字符串的结束符当然这里也可以用"\0";

  3. zyy_hz 于 2013-06-02 23:45:35发表:

    =\0;
    这个有问题。\0应该加单引号的。

  4. surarain 于 2013-05-29 09:17:16发表:

    nice

  5. xiadon 于 2013-05-25 16:24:28发表:

    不够水平