ftell()总是出错
昨天写了一个很小的测试程序,试试pipe()的使用,程序大致如下:
void main (void)
{
char test=4,buffer;
char string[20];
pid_t uid;
FILE *fstream;
int fd,fdin[2];
if(pipe(fdin) == -1)
perror("create pipe failed!");
fd = fdin[0];
if((fstream = fdopen(fd,"r")) == NULL)
perror("fdopen error!");
if((uid=fork()) == 0) //child
{
close(fdin[0]);
if(fdin[1] != STDOUT_FILENO)
{
if(dup2(fdin[1],STDOUT_FILENO) != STDOUT_FILENO)
perror("dup2 failed!");
exit(255);
close(fdin[1]);
}
execlp("/11/hello",NULL);
}
else if(uid < 0)
perror("fork error");
else //parent
{
close(fdin[1]);
if(fseek(fstream,0,SEEK_SET) != 0)
perror("seek error");
fread(string, 1, 6, fstream);
}
fseek总是出错,不知什么原因,高手指点
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
你就顺序读取呀。
一般来说,具备什么条件的流不可以呢,那在我这里用什么方法获取流数据呢?fgets()?
流也要看是什么流,
并不是所有的流都可以的。
流可以fseek,不代表pipe可以定位!
Illegal seek!
我在这里不是用fdopen将一个管道的文件描述符与一个流结合了吗,对一个流是可以调用fseek的呀
报什么错误?
好像fseek不能对pipe操作吧。