popen 函数的问题

dfgfdg63466 2010-06-17 10:49:52
我使用popen函数调用shell脚本,shell脚本执行了,但是取不到返回的文件流的内容
if(fread = popen("ksh /iboss1/work/test.sh","r")!=NULL){
if(fgets(buf,1024,fread))==NULL{
printf("读取失败!!")
}
rewind(fread);
while(fgets(buf,1024,fread)!=NULL){
printf(prom has start:%s,buf)
}

}
总是输出读取失败!!,进入不到循环正常打印出执行的信息,苦思不得其解,希望哪位高手能够指点一下问题出在哪里?万分感谢
...全文
270 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
vanchristin 2010-06-17
  • 打赏
  • 举报
回复
fread
变量名最好不要跟库函数名重名的好
cattycat 2010-06-17
  • 打赏
  • 举报
回复
popen返回FILE*流,但你这里fread是标准IO的函数,所以换个名字应该就可以了。
blueinspur 2010-06-17
  • 打赏
  • 举报
回复
这个查看一下函数的说明就可以了嘛,帮助文档
huanmie_09 2010-06-17
  • 打赏
  • 举报
回复
fread为库函数名,作为变量,还是不要跟库函数名冲突的好.
mymtom 2010-06-17
  • 打赏
  • 举报
回复
fread是标准库函数,建议换一个变量名试试,
记得rewind对管道的行为是未知的,所以建议删除以下的三行

if(fgets(buf,1024,fread))==NULL{
printf("读取失败!!")
}
rewind(fread);
KevinHo 2010-06-17
  • 打赏
  • 举报
回复
popen返回的是FILE *流

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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