我正在发送
std::string cmdStr = "setxkbmap us";
int res = system( cmdStr.c_str() );结果就是
res: 65280会有什么问题呢?
发布于 2012-07-05 23:45:28
该值表示子进程正常退出,值为255。
在以下情况下可能会发生这种情况:
/bin/sh无法找到setxkbmap。(注:在这一点上,我可能是错的。在我的PC上,case.)setxkbmap无法在$DISPLAY上打开X服务器时,/bin/sh返回127,包括如果DISPLAY is 未设置
我相信还有很多其他的可能性。检查stdout中的错误消息。
在Linux上解释system的返回值时,这样做:
#include <sys/wait.h>
int res = system(foo);
if(WIFEXITED(res)) {
std::cout << "Normal exit: " << WEXITSTATUS(res) << "\n";
} else {
if(WIFSIGNALED(res)) {
std::cout << "Killed by signal #" << WTERMSIG(status);
if(WCOREDUMP(res)) {
std::cout << " Core dumped";
}
std::cout << "\n";
} else {
std::cout << "Unknown failure\n";
}
}https://stackoverflow.com/questions/11347723
复制相似问题