我无法访问/ 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 }