- 论坛徽章:
- 0
|
我自已建了一个文件内容是:
1111 pppp
2222 cccc
3333 dddd
我这个程序的目的是想把每一行前面的那4位数字读出来
我是这样写的:
char buf[4],buf1[4];
struct iovec iov[2];
iov[0].iov_base=buf;
iov[0].iov_len=4;
if((fd=open("/usr/tt.txt",O_RDONLY,0))==-1)
{
printf("open error\n"
exit(1);
}
if(readv(fd,&iov[0],1)!=4)
{
printf("readv buf error\n"
exit(0);
}
buf[4]=0;
printf("%s",buf);
if(lseek(fd,80,SEEK_SET)==-1)
{
printf("lseek error\n"
exit(1);
}
iov[1].iov_base=buf1;
iov[1].iov_len=4;
if(readv(fd,&iov[1],1)!=4)
{
printf("readv buf1 error\n"
exit(1);
}
printf("%s",buf1);
exit(0);
}
可是这个程序执行时就提示readv buf error
如果我如果将lseek(fd,1,SEEK_CUR);设为这种形式它能够读出elle;
如果我不判断readv(fd,&iov[1],1);
它就输出一个)。我建的文件里并没有)这个字符啊。
请问这是什么原因呢? |
|