当前位置: 技术问答>linux和unix
获取Linux 进程ID相关信息 报错Permission denied
来源: 互联网 发布时间:2016-10-19
本文导语: #include #include int main(int argc,char **argv) { pid_t my_pid,parent_pid; uid_t my_uid,my_euid; gid_t my_gid,my_egid; struct passwd *my_info; my_pid=getpid(); parent_pid=getppid(); my_uid=getuid(); my_euid=geteuid(); my_gid=getgid(); my_egid=getegid(); my_info=getpwuid(my...
#include
#include
int main(int argc,char **argv)
{
pid_t my_pid,parent_pid;
uid_t my_uid,my_euid;
gid_t my_gid,my_egid;
struct passwd *my_info;
my_pid=getpid();
parent_pid=getppid();
my_uid=getuid();
my_euid=geteuid();
my_gid=getgid();
my_egid=getegid();
my_info=getpwuid(my_uid);
printf("Process ID:%ldn",my_pid);
printf("Parent ID:%ldn",parent_pid);
printf("User ID:%ldn",my_uid);
printf("Effective User ID:%ldn",my_euid);
printf("Group ID:%ldn",my_gid);
printf("Effective Group ID:%ldn",my_egid);
if(my_info)
{
printf("My Login Name:%sn" ,my_info->pw_name);
printf("My Password :%sn" ,my_info->pw_passwd);
printf("My User ID :%ldn",my_info->pw_uid);
printf("My Group ID :%ldn",my_info->pw_gid);
printf("My Real Name:%sn" ,my_info->pw_gecos);
printf("My Home Dir :%sn", my_info->pw_dir);
printf("My Work Shell:%sn", my_info->pw_shell);
}
}
[lxiron@FedoraOS myfolder]$ gcc -o LinuxPid -c LinuxPid.c
[lxiron@FedoraOS myfolder]$ ./LinuxPid
bash: ./LinuxPid: Permission denied
顺利编译通过,但运行时,报错如上面红色显示,如何解决啊?
PS: 用的是Fedora 13 我在root也试过,报同样的错!
|
gcc -o LinuxPid -c LinuxPid.c
===>
gcc -o LinuxPid LinuxPid.c
===>
gcc -o LinuxPid LinuxPid.c
|
为什么要加-c呢 -c选项只激活预处理 编译 和汇编 也就是他只把程序做成obj文件 而非可执行文件
我不会编程 可是我也接触过一些编程的书 从来没见过这样讲的
|
chmod u+x LinuxPid
|
-c 只是将宏定义等展开;编译成中间文件。并不是最终的可执行文件。