我要訪問的C變量系統命令,但我不知道該怎麼辦呢 我試圖像下面但這並不適用訪問C變量
#include<stdlib.h>
int main(){
int a=12;
system("echo $a");
}
我要訪問的C變量系統命令,但我不知道該怎麼辦呢 我試圖像下面但這並不適用訪問C變量
#include<stdlib.h>
int main(){
int a=12;
system("echo $a");
}
你不能這樣做這通過任何類型的字符串插值,如你已經嘗試過。你需要做的是在將它傳遞給system()
之前構建命令字符串。
#include <stdio.h>
#include <stdlib.h>
int main() {
int a = 12;
char command[100];
sprintf(command, "echo %d", a);
system(command);
}
的系統函數採用一個const char *參數,並返回取決於系統的整數值;通常是執行後的命令的狀態碼。
int system (const char* command);
所以嵌入在C程序中的變量,你就必須建立一個命令字符串,然後把它傳遞給系統();除了使用上面建議的sprintf()
之外,您還可以使用字符串函數,例如strcat()
以及從C變量中構建複雜的命令。例如
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int a = 12;
char command[] = "ls";
char opt[] = " -l";
char cmd[50];
strcat(command, opt);
sprintf(cmd, " | head -n %d", a);
strcat(command, cmd);
printf("%s\n", command);
int rv = system(command);
printf("Return value : %d\n", rv);
return 0;
}