[英]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.