1
我有一個關於在C++中使用popen()的問題。C++ popen()參數
下面的代碼工作正常,您可以直接將「ls」作爲popen()的第一個參數。
FILE *fp;
char returnData[64];
fp = popen("ls","r");
if (fp == NULL){
}
else{
while (fgets(returnData, 64, fp) != NULL){
fprintf(stdout, "%s", returnData );
}
}
但是,此代碼不起作用。爲什麼我不能使用名爲command的字符串作爲參數?有必要附加.c_str()。
FILE *fp;
char returnData[64];
string command = "ls";
fp = popen(command,"r"); // fp = popen(command.c_str(),"r");
if (fp == NULL){
}
else{
while (fgets(returnData, 64, fp) != NULL){
fprintf(stdout, "%s", returnData );
}
}
有人能解釋的區別?
謝謝