• 4581阅读
  • 3回复

[提问]程序调用who am i无返回 [复制链接]

上一主题 下一主题
离线lzhxu
 
只看楼主 倒序阅读 楼主  发表于: 2011-09-02
为了查询当前是通过远程桌面登陆,还是本地登陆需要调用who am i命令来判断。现在命令在shell下运行没有问题。但是通过程序调用,system("who am i >1.txt") ,只是创建了一个空文件。 调用 QProcess 运行,也无返回,求解。
离线copyleft_x
只看该作者 1楼 发表于: 2011-09-02

是 whoami ,中间没用空格(或者是who??)。
另外,你是怎么用QProcess 调用的,说清楚。。。

离线lzhxu
只看该作者 2楼 发表于: 2011-09-02
调用 who am i 不是 whoami,。 如果调用 system("who > 1.txt") 这个就没问题。  QProcess *test;
test = new QProcess(); test->("who am i > 1.txt"), 是这样用的。
离线copyleft_x
只看该作者 3楼 发表于: 2011-09-03
查了一下,确实有who am i这货,说跟who -m等价。

我这的情况是这样的:
在level 3模式下,用普通用户登入,输入who am i ,有一条登入信息打印出来。
之后,启动X,在xterm中输入who am i,没有信息出来。

你的提问中:
为了查询当前是通过远程桌面登陆,还是本地登陆需要调用who am i命令来判断。现在命令在shell下运行没有问题。
这句话中,你的QT程式是跑在X WINDOW下面的吧,那么,你在 X下面试过who am i这个嘛?我这边是没有任何输出,不知道是否与X有关。如果你的X下面可以运行显示什么结果的话,我想system("who am i >1.txt");应该不会得到空文件。

如果为空的话,或许可以用who之后用过滤器删选;或者尝试一下别的实用工具;查查相关的syscalll之类的,去相关LINUX论坛问一下,可能更有帮助 :)
快速回复
限100 字节
 
上一个 下一个