访问/ proc / <pid> / exe

时间:2017-01-16 11:51:43

标签: linux unix filesystems

我无法访问/ proc文件系统中的文件 我的进程一旦在日志文件中开始写入。我的进程已停止,当我检查日志文件以查看它遇到问题的位置时,发现“权限被拒绝”。 它进入/ proc目录,通过getPID()获取PID并使用O_RDONLY触发open()来读取/proc/<pid>/exe 但在解雇后我得到一个错误“权限被拒绝”。 我做了一些研究,发现内核在访问/ proc中的某些文件时强制执行一些限制,但我有20个进程都访问相同的/proc/<pid>/exe,但只有一个面临这个问题..

CHAR fn[100];
159     CHAR args[500];
160     CHAR ProgName[50];
161     CHAR *arr[6];
162     CHAR *buf;
163         CHAR ProcessId[10];
164         static int count_try = 0;
165
166
167         memset(fn,0,100);
168         memset(ProcessId,0,10);
169         sprintf (ProcessId,"%d",Pid);
170     strcpy(fn, "/proc/");
171     strcat(fn, ProcessId);
172     //strcat(fn, "/elf_prpsinfo");
173     strcat(fn, "/exe");
174
175     if ((psp = open(fn, O_RDONLY)) == -1)
176     {
177     perror("GetProgName:ps open::");
178     exit(ERROR);
179     }

0 个答案:

没有答案