首页 文章
  • 0 votes
     answers
     views

    管道未从子进程接收所有输出

    我想打开一个程序管道并从中读取输出 . 我最初的倾向是使用popen(),但程序需要很多选项,而不是使用shell引用/转义,我决定使用pipe(),fork(),dup()的组合来绑定管道的末端到父/子中的stdin / stdout,而execv()用程序的调用替换子程序,它传递了它期望作为数组的所有选项 . 程序输出许多行数据(并在每行之后刷新标准输出) . 父代码将stdin设置为非阻塞,...
  • 0 votes
     answers
     views

    程序在使用管道进行分叉过程中崩溃

    我正在为课程作业编写一个基本的shell,它将在给定的路径列表中找到命令,并执行命令 . 它也意味着处理管道 . 但是,当我分叉子进程时,我在gdb中收到“Write error:Broken Pipe”消息,程序突然终止 . 我似乎无法理解为什么会发生这种情况,因为我对打开和关闭正确的管道一直持谨慎态度,并且工艺分叉似乎也能按预期工作 . 有更多C和unix编程经验的人可以帮我诊断问题吗?我的f...

热门问题