【发布时间】:2015-08-28 09:55:39
【问题描述】:
我有一个关于在 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 );
}
}
有人能解释一下区别吗?
谢谢
【问题讨论】: