[英]How to save output of a command in char array in c?
我需要使用管道使 2 個程序相互通信。 第一個程序保存它在 pipe 中的路徑並將其發送到第二個,它應該使用該路徑運行ls
命令並發回ls
的 output 。 我想這樣發送write(fd2, arr2, strlen(arr2)+1);
其中fd2
是一個包含描述符的 integer。 我想execvp("ls ", argv);
並將它的 output 分配給arr2
,但我不知道如何在沒有添加文件的情況下執行此操作。
編輯
基本上問題是:
如何保存execvp("ls ", argv);
在一個數組中?
execvp
沒有 output 值(因為從exec
function 返回的事實表明存在錯誤)。
如果您只想擁有 output,請使用popen
。
如果您想要更多控制權(或想要同時進出重定向),請繼續閱讀。
假設您要獲取您在exec
中運行的程序的 output ,您需要執行以下操作:
pipe()
)fork()
dup2
)exec()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.