procpollable.c
来自「linux进程跟踪的工具和源代码」· C语言 代码 · 共 34 行
C
34 行
#include <stdio.h>#include <signal.h>#include <sys/procfs.h>#include <sys/stropts.h>#include <poll.h>main(){ int pid; char proc[32]; FILE *pfp; struct pollfd pfd; if ((pid = fork()) == 0) { pause(); exit(0); } sprintf(proc, "/proc/%d", pid); if ((pfp = fopen(proc, "r+")) == NULL) goto fail; if (ioctl(fileno(pfp), PIOCSTOP, NULL) < 0) goto fail; pfd.fd = fileno(pfp); pfd.events = POLLPRI; if (poll(&pfd, 1, 0) < 0) goto fail; if (!(pfd.revents & POLLPRI)) goto fail; kill(pid, SIGKILL); exit(0);fail: kill(pid, SIGKILL); exit(1);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?