簡體   English   中英

如何從C執行nm並捕獲輸出

[英]How to execute nm from C and capture output

我正在嘗試編寫一個程序,該程序將檢查另一個程序的全局變量的大小。 讓我們將程序稱為“ check”,將已檢查的程序稱為“ a.out”,這意味着我將像這樣運行程序:

./check a.out

我認為我可以使用以下命令找到該值:

nm -t d -S a.out | grep ' B ' | awk '{print $2}'

我知道您可以使用fork / execl從程序內部執行程序,但是編寫IO的管道時遇到了一些麻煩。

使用一些簡單的strcpy / strcats,我有一個包含上述字符串的c字符串,我可以使用execl調用它,但是它似乎什么都不打印。 現在看起來像這樣:

// Code setting char command[1024] equal to the above string
int pid;
if(pid = fork()){ // Parent
    // Need some pipes here?
}
else{ // Child
    execl(command, NULL);
}

誰能指出我正確的方向來設置這些管道?

可能需要pubs.opengroup.org/onlinepubs/009696799/functions/popen.html –墊子

看起來我可以pop躍做我想做的事。 我仍然需要解析輸出並將其轉換為整數,但是看起來這樣就可以了! – nchen24

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM