正在获取不带库函数的进程id
Getting process id without library functions?
嗨,我知道如何使用c++使用库函数getpid()来获取pid,有没有可以在不调用库函数的情况下做到这一点?
如果您在使用syscall,则会出现以下情况:
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';
}
对于我的windows伙伴们。。
#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("%dn", getPID());
printf("%d", GetCurrentProcessId());
}
相关文章:
- 无法获取进程 ID 4 (ntoskrnl.exe) 的可执行路径
- 为什么if(fork()==0){getpid()}和popen()进程返回相同的进程id
- 从 C++ 中的二进制路径(命令行语句)获取进程 ID
- 使用进程 ID 终止进程
- C++ 通过进程 ID 获取进程的名称
- 按名称查找进程 ID 的快速方法
- WinEventHook未捕获特定进程id中的事件
- 视觉C++从父进程 ID 获取子进程 ID
- 获取 Winlogon.exe 的会话 ID 和进程 ID
- 如何在浏览器子进程主机Impl->启动后获取浏览器子进程的进程ID
- 如何在进程间通信中获取其他终结点的进程 ID
- 父级的父级的进程 ID - Linux
- 在检查进程 ID 时使用 WaitForSingleObject 的好处
- C++:通过进程id、进程句柄和标题名称从进程中获取唯一窗口的窗口句柄的最佳方法
- PIN - 获取正在检测的二进制文件的进程 ID
- C++ 获取进程 ID 获取本地 ID(如果目标进程未打开)
- 如何使用 boost.log 以 dec 格式打印进程 ID 和线程 ID
- 如何在C++中获取当前进程 ID 和计算机名称
- 如何获取由 popen 创建的进程 ID
- 如何使用JNI获取浏览器上当前活动选项卡的进程ID