为何这个程序输出不同的gid?

软件和网站开发以及相关技术探讨
回复
头像
thlgood
帖子: 37
注册时间: 2010-12-28 9:13

为何这个程序输出不同的gid?

#1

帖子 thlgood » 2011-10-01 14:24

代码: 全选

/*
 *Filename:  	main.c
 *Created:  	2011年10月01日 14时09分20秒
 *Author:  	thlgood
 */

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
	pid_t son_fork_pid;
	if ((son_fork_pid = fork()) == 0)
	{
		printf("getgid=%d\n", getgid());
		printf("getpgid=%d\n", getpgid(getpid()));
		exit(0);
	}
	return EXIT_SUCCESS;
}
附件
Screenshot.png
Screenshot.png (3.08 KiB) 查看 776 次
头像
cuihao
帖子: 4793
注册时间: 2008-07-24 11:33
来自: 郑州
联系:

Re: 为何这个程序输出不同的gid?

#2

帖子 cuihao » 2011-10-01 18:49

:em20
getgid的group是用户组
getpgid的group是进程组

代码: 全选

cuihao@cuihao-arch /tmp $ id -g
1000
cuihao@cuihao-arch /tmp $ ./a.out
getgid=1000
getpgid=30443
cuihao@cuihao-arch /tmp $ id -g root
0
cuihao@cuihao-arch /tmp $ sudo ./a.out
密码:
getgid=0
getpgid=30466
cuihao@cuihao-arch /tmp $ id -g postgres
88
cuihao@cuihao-arch /tmp $ sudo su postgres -c ./a.out
getgid=88
getpgid=30565
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
头像
thlgood
帖子: 37
注册时间: 2010-12-28 9:13

Re: 为何这个程序输出不同的gid?

#3

帖子 thlgood » 2011-10-03 14:08

:em06
我错啦。。。
回复