• 3787阅读
  • 2回复

Linux获得"当前用户名"问题. [复制链接]

上一主题 下一主题
离线rootuser
 

只看楼主 倒序阅读 楼主  发表于: 2015-05-11
1.在demo中能获得当前用户名;但是把代码cp到应用中getlogin()函数返回NULL;
代码如下:求解释,why?

QString _name(getlogin());
    qDebug()<<_name;

printf("**********f************");
    uid_t userid;
   struct passwd* pwd;
   userid=getuid();
   printf("userid is %d\n",userid);
   pwd=getpwuid(userid);
   printf("username is %s\nuserdir i %s\n",pwd->pw_name,pwd->pw_dir);
   printf("***********************************");
   qDebug()<<QString(pwd->pw_name);

离线rootuser

只看该作者 1楼 发表于: 2015-05-11
好吧!//获得用户名的方法 3;
    QProcess *_process=new QProcess;
    _process->setProcessChannelMode(QProcess::MergedChannels);
    _process->start("whoami");
    _process->waitForFinished(-1);
   QString _name= _process->readAll();
   _name.remove("\n");
   qDebug()<<"whoami:"<<_name;
离线rootuser

只看该作者 2楼 发表于: 2015-05-11
回 rootuser 的帖子
rootuser:好吧!//获得用户名的方法 3;
    QProcess *_process=new QProcess;
    _process->setProcessChannelMode(QProcess::MergedChannels);
    _process->start("whoami");
    _p .. (2015-05-11 18:37) 

delete _process;


有人能 告诉我为什么放在 应用程序 中检测不到 "当前用户名"吗?
快速回复
限100 字节
 
上一个 下一个