cuserid() 原型如下:
[Plain Text] 纯文本查看 复制代码 #include <stdio.h>
char *cuserid(char *string);
cuserid() 函数返回一个包含了运行该函数进程的有效用户ID所对应用户名的指针。如果参数 string 是个非空指针,那么它应该是一个至少是个 L_cuserid 大小的字符数组,则用户名就返回并存放在该数组之中。
如果 string 为 NULL,那么返回的字符串则存放在一个自动分配的静态缓冲区中,若在调用 cuserid() 后再调用该函数或者调用 getlogin() 函数,那么这个静态缓冲区就会被覆盖。
宏 L_cuserid 定义在 stdio.h 头文件中,实际上可以在vi /usr/include/bits/stdio_lim.h 中找到该值的具体定义,POSIX 中定义该值为 9 。
尽量使用 getpwuid(geteuid()); 函数来取代该函数。
测试代码:
[C++] 纯文本查看 复制代码 #include <stdio.h>
int main()
{
printf ("I am %s.\n", cuserid(NULL));
return 0;
}
使用用户名为 beyes 的用户运行该程序:使用 root 来运行该程序: |