嗨我知道如何使用c ++使用c ++获取pid getpid()无论如何都可以在不调用库函数的情况下执行此操作吗?
答案 0 :(得分:1)
如果您正在使用系统调用,那么就有:
http://man7.org/linux/man-pages/man2/syscall.2.html
#include <unistd.h>
#include <sys/syscall.h>
#include <sys/types.h>
int main()
{
pid_t pid = syscall(SYS_getpid);
std::cout << pid << '\n';
}
答案 1 :(得分:0)
我的窗户伙伴们在那里..
#include <cstdio>
#include <windows.h>
int getPID()
{
#ifndef _MSC_VER
#ifndef __x86_64__
asm ("movl %%FS:0x20, %%eax":::);
#else
asm ("movq %%GS:0x40, %%rax":::);
#endif
#else
#ifndef _WIN64
__asm {mov eax, FS:[0x20];};
#else
__asm {mov rax, GS[0x40];};
#endif
#endif
}
int main()
{
printf("%d\n", getPID());
printf("%d", GetCurrentProcessId());
}