[英]C passing other c program as main argv
只是好奇,
考慮到我有
。/第一的
。/第二
他們是可執行的c程序
首先.c:
char main(void){
return '5';
}
第二個.c:
#include<stdio.h>
int main(int argc, char** argv){
printf("%s", argv[2]);
return 0;
}
(我想在這里打印 5)
是否可以像這樣編譯 second.c:
gcc second.c -./first
當然,我知道這行不通,但是有可能寫出像我想要的那樣工作的東西嗎?
main()
的返回值成為程序的退出狀態,放在shell 的$?
多變的。 所以應該是:
./first
./second $?
您應該更改first.c
以返回int
,而不是char
; 否則它將打印'5'
字符的 ASCII 代碼,而不是5
。
int main(void){
return 5;
}
在second.c
,它應該是argc[1]
,而不是argv[2]
。
讓第一個程序打印“5”:
int main(void){
printf("5\n");
return 0;
}
然后你可以在shell中使用反引號將這個程序的輸出放入另一個的參數中:
./second `./first`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.