我运行下面的代码(在Windows 7中,如果有差别):系统功能似乎忽略引号
char temp[20000];
sprintf_s(temp, 20000, "\"C:\\Program Files\\Mozilla Firefox\\firefox.exe\" \"http://www.tvtak.com/servlet/Gateway/?C=addShows&channel=%s&show=%s\"", _channels[chId], name);
system(temp);
在运行时,控制台显示:
“ C:\ Program'不被识别为 内部或外部命令,可操作 程序或批处理文件。
'channel'不被识别为内部命令或 外部命令,可操作程序或 批处理文件。
'show'不被识别为 作为内部或外部命令, 可操作的程序或批处理文件。
但是,当我通过QuickWatch获得'temp'的值并将其粘贴到CMD时,它工作正常。这里发生了什么?
我应该提到我追加到字符串的参数包含非拉丁字符。这可能与它有关吗?
对于CreateProcess()建议+1 – 2010-11-22 10:10:20