当前位置:  技术问答>linux和unix

哪位高手帮我看看下面linux函数调用问题,谢谢。

    来源: 互联网  发布时间:2016-10-30

    本文导语:  这边的警告我已经列出来了 getpwnam 函数有两种用法即struct passwd *getpwnam(const char *name); 和 struct passwd *getpwuid(uid_t uid); 为什么当我用struct passwd *getpwuid(uid_t uid);这种申明方式的用法是就会有警告,而且运行结...

这边的警告我已经列出来了 getpwnam 函数有两种用法即struct passwd *getpwnam(const char *name); 和
struct passwd *getpwuid(uid_t uid); 为什么当我用struct passwd *getpwuid(uid_t uid);这种申明方式的用法是就会有警告,而且运行结果只有一句?????

运行结果:Segmentation fault


警告:
//getname.c:26: warning: passing argument 1 of ‘getpwnam’ makes pointer from integer without a cast
#include 
#include 
#include 
#include 
#include 

int main(void)
{
char *login;
struct passwd *pentry;
uid_t uid;
uid =getuid();
/* Get the login name */
if((login = getlogin()) == NULL) { /* oops */
perror("getlogin");
exit(EXIT_FAILURE);
}

/* Get the password entry for login */
// struct passwd *getpwnam(const char *name);
//struct passwd *getpwuid(uid_t uid);
//if((pentry = getpwnam(login)) == NULL) 
if((pentry = getpwnam(uid)) == NULL)
{
perror("getpwnam");
exit(EXIT_FAILURE);
}

/* Display the password entry */
printf("user name: %sn", pentry->pw_name);
printf("UID      : %dn", pentry->pw_uid);
printf("GID      : %dn", pentry->pw_gid);
    printf("gecos    : %sn", pentry->pw_gecos);
    printf("home dir : %sn", pentry->pw_dir);
    printf("shell    : %sn", pentry->pw_shell);

exit(EXIT_SUCCESS);
}

|
getpwnam和getpwuid对于参数要求不同,前者要求是char*,后者要求是uid_t型。
//if((pentry = getpwnam(login)) == NULL)  
if((pentry = getpwnam(uid)) == NULL) --> if((pentry = getpwuid(uid)) == NULL)

|
GETPWNAM(3)                                                     Linux Programmer's Manual                                                     GETPWNAM(3)

NAME
       getpwnam, getpwnam_r, getpwuid, getpwuid_r - get password file entry

SYNOPSIS
       #include 
       #include 

       struct passwd *getpwnam(const char *name);

       struct passwd *getpwuid(uid_t uid);

       int getpwnam_r(const char *name, struct passwd *pwbuf,
                   char *buf, size_t buflen, struct passwd **pwbufp);

       int getpwuid_r(uid_t uid, struct passwd *pwbuf,
                   char *buf, size_t buflen, struct passwd **pwbufp);
楼主你看错了,用getpwuid就行了

    
 
 

您可能感兴趣的文章:

  • 调用dll的问题???请高手指教!!!
  • linux和unix iis7站长之家
  • 在sendmail里调用其他处理邮件程序的问题,高手进来!
  • 请问高手:我想用applet调用一个本地的exe。怎么办?
  • 请教内核高手,抽空解释一下系统中断调用处理流程
  • 一个关于在java中调用动态链接库的问题,高手指点!
  • 有关静态库*.a的调用问题,请高手指点,急急急!
  • 客户端JavaScipt对servlet的调用问题。各位高手请进!!!
  • [100分]如何在GTK下编写的程序中调用shell下的批处理程序[高手进]
  • 请问诸位高手,Java中JFrame上最小化按钮是调用什么方法实现的??
  • 请问高手,如何在java/jsp中调用应用程序??
  • 哪位高手有兴趣跟我讨论讨论java中调用dll文件??小弟有些问题还是不很清楚??
  • 100分!·!高手请进--Applet怎么能在IE中显示调用的Access数据库?
  • java调用C/C++编写的DLL文件问题,请有经验的高手指教?
  • C调用shell脚本出现问题,在线等待求教高手
  • java可以调用windows api吗,用jbuild 可以生成.exe文件吗,散分,高手出招
  • 请教高手,如何在java中调用其他应用程序(该程序主要进行数据库操作)
  • 关于Excel做后台数据调用!已经变通到这样了!高手们来帮忙吧!
  • 请问高手,linux c调用ncurses 库后如何不乱屏强制退出
  • awk调用函数的问题,请高手帮忙解答
  • 高手帮帮忙!vi中如何实现跳转到任意结构体或函数的声明处,包括系统库中声明的函数和数据结构?
  • 高手指点,关于库函数的问题,着急啊
  • 100分请教高手一个bash函数
  • 关于linux内核的ioctl函数,请高手指点一下
  • 请问高手,如何用linux操作系统里的标准c函数获取bios时间,高分!!!!
  • 小弟请教各位高手,在JAVA中通过什么函数能获得Button的标签内容?
  • linux下time函数问题请教高手
  • 请那位高手详细解释一下wait函数的用法和意义?
  • 高手帮解答:数学基本库函数的源码问题.请你吃烤鸭
  • 高手请进:请问用response.sendRedirect()函数传递的中文参数如何正确识别?
  • 关于select函数,请高手指教。在线等 分不够加!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教高手lvs的奇怪问题,我挺着急,希望高手别潜水,就就我,先谢谢了
  • 求助 ==> 代码移殖:从Linux到的Windows,请高手指点一二,谢谢啦
  • 三层结构很简单,但怎么正确使用请高手指点!!!!谢谢
  • linux起不来了,请教高手,谢谢
  • 请教高手,如何在VMware下安装suse10.0??请指教,谢谢。
  • linux内核里面的所有头文件,有没有整理过的,请高手指点!谢谢!!!
  • 哪位高手可以解释下Linux的消息机制吗?谢谢
  • 请教高手!如何在bean中引入链接池?谢谢!
  • 问Linux高手一个安卓系统的问题,麻烦回答一下,谢谢!
  • 我搞不定了,请高手帮忙!!谢谢
  • crontab的问题,希望高手指教!谢谢!
  • UNIX ,消息队列问题,请高手帮忙,谢谢先!!!急!!!
  • 有没有高手知道linux系统定制(最小化定制)的?(在线守候)请您提供一点相关资料,谢谢!
  • blh(老猫)大哥,你是高手。有建议吗?谢谢了
  • 怎样安装LINUX7.3版,高手请指点!!谢谢了!
  • 怎么才能知道声卡、显卡、网卡的信息?如何安装驱动?请各位高手指点,谢谢!!!
  • 求助,关于显卡驱动的安装,高手请进,谢谢
  • 刚开始用linux,相交一些朋友大家共同进步,成为高手。谢谢!!~
  • 请教高手,谢谢!
  • 一个shell的问题,请各位高手进来帮忙了,急,谢谢
  • 高手,高手,高高手请进!
  • 有熟悉EXIM的高手高手么??
  • to 高手:学java应该怎样一步步学习,从菜鸟到高手.
  • 高分请高手,高手定能解决
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • 难道高手区里的人就是高手?
  • 在dos下用bc31挑战高手******开发mssql程序,连接时报link err:undefined symbol GETNOTE in module DBEXTERN?(挑战高手)
  • 真正的linux高手,请看过来,看你符合高手标准不?
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50)
  • 关于我对linux高手用yum,非高手用源码的理由


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3