本程序在Ubuntu和Centos系统下能够正常使用!
具体实现的代码:
bool isSingleProcess ()
{
long pid;
char full_name[1024] = {0};
char proc_name[1024] = {0};
int fd;
pid = getpid();
cout << "pid = " << pid;
sprintf(full_name, "/proc/%ld/cmdline", pid);
if (access(full_name, F_OK) == 0)
{
fd = open (full_name, O_RDONLY);
if (fd == -1)
return false;
read (fd, proc_name, 1024);
close (fd);
}
else
return false;
char self_proc_name[512] = {0};
char * p = proc_name;
int pt = 0;
while (*p != ' ' && *p != '\0')
{
self_proc_name[pt] = *p;
p++;
pt++;
}
string self_final_name = basename(self_proc_name);
cout << "self_final_name = " << self_final