LCA2011 version
[tridge/junkcode.git] / getegid.c
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <sys/types.h>
4 #include <errno.h>
5
6
7 int main(void)
8 {
9         gid_t gid = (gid_t)-2;
10
11         if (setegid(gid) != 0) {
12                 perror("setegid");
13                 exit(1);
14         }
15         
16         errno = 0;
17
18         gid = getegid();
19         
20         if (gid == (gid_t)-1 && errno == 2) {
21                 printf("oh oh - returned a gid as an errno?!\n");
22                 exit(1);
23         }
24
25         if (gid != (gid_t)-2) {
26                 printf("Failed to set egid!?\n");
27                 exit(1);
28         }
29
30         if (errno != 0) {
31                 printf("getegid overwrote errno - bad stuff\n");
32                 exit(1);
33         }
34
35
36         return 0;
37 }