免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1149 | 回复: 5
打印 上一主题 下一主题

谁帮我解决这个问题呀!!!!!!!!!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-17 21:32 |只看该作者 |倒序浏览
1 #include <stdio.h>
      2 #include <stdlib.h>
      3 #include <unistd.h>
      4 #include <pwd.h>
      5 #include <grp.h>
      6 #include <sys/types.h>
      7
      8 void usage( char *name )
      9         {
     10          printf("usage: %s username/useID \n",name);
     11         }
     12 int main( int argc, char **argv )
     13 {
     14  struct passwd *pwd;
     15  struct group *grp;
     16  char **namelist;
     17 pwd=malloc(sizeof(struct passwd));
     18 grp=malloc(sizeof(struct group));
     19  int i;
     20 if (argc != 2)
     21         usage( argv[0] );
     22 if (pwd = getpwnam(argv[1])==NULL)
     23    {
     24     if ((pwd = getpwuid(atoi(argv[1])))==NULL)
     25         {
     26         printf("error: username or user ID \n");
     27         exit(1);
     28         }
     29    }
     30 printf("user name: %s\n",pwd->pw_name);
     31 printf("user password: %s\n",pwd->pw_passwd);
     32 printf("user ID: %d\n",pwd->pw_uid);
     33 printf("user GID: %d\n",pwd->pw_gid);
     34 printf("user Dir: %s\n",pwd->pw_dir);
     35 printf("user shell: %s \n",pwd->pw_shell);
     36 printf("user gecos: %s \n",pwd->pw_gecos);
     37 if (grp = getgrgid(pwd->pw_gid) == NULL)
     38         {
     39          printf("error:getgrgid\n");
     40          exit(1);
     41         }
     42 printf("group name: %s\n",grp->gr_name);
     43 printf("group password: %s\n",grp->gr_passwd);
     44 printf("group member: \n");
     45 for (i=0; namelist[i]!=NULL; i++)
     46 {
     47         printf("\t%s\n",namelist[i]);
     48 }
     49 exit(0);
     50 }错误提示:
#gcc -o userlist a.c
a.c: In function `main':
a.c:22: warning: assignment makes pointer from integer without a cast
a.c:37: warning: assignment makes pointer from integer without a cast

论坛徽章:
0
2 [报告]
发表于 2006-06-17 21:40 |只看该作者
getpwnam(argv[1])==NULL

是个整型。

论坛徽章:
0
3 [报告]
发表于 2006-06-18 19:59 |只看该作者

struct passwd * getpwnam(const char * name);

相关函数  getpw,fgetpwent,getpwent,getpwuid

表头文件  #include<pwd.h>
#include<sys/types.h>

定义函数  struct passwd * getpwnam(const char * name);

函数说明  getpwnam()用来逐一搜索参数name 指定的账号名称,找到时便将该用户的数据以passwd结构返回。passwd结构请参考getpwent()。

返回值  返回passwd 结构数据,如果返回NULL 则表示已无数据,或有错误发生。

范例  /*取得root账号的识别码和根目录*/
#include<pwd.h>
#include<sys/types.h>
main()
{
struct passwd *user;
user = getpwnam(“root”);
printf(“name:%s\n”,user->pw_name);
printf(“uid:%d\n”,user->pw_uid);
printf(“home:%s\n”,user->pw_dir);
}

执行  name:root
uid:0
home:/root

论坛徽章:
0
4 [报告]
发表于 2006-06-18 20:02 |只看该作者
各位大牛这行是什么意思呀
warning: assignment makes pointer from integer without a cast

论坛徽章:
0
5 [报告]
发表于 2006-06-18 20:06 |只看该作者
你懂英文吗?

论坛徽章:
0
6 [报告]
发表于 2006-06-18 21:36 |只看该作者
谢楼上的了 我搞定了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP