簡體   English   中英

C 將其他 C 程序作為主要 argv 傳遞

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

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