![在 OSX 上编译 ptrace() 程序](https://linux22.com/image/128659/%E5%9C%A8%20OSX%20%E4%B8%8A%E7%BC%96%E8%AF%91%20ptrace()%20%E7%A8%8B%E5%BA%8F.png)
我在 MacOS 上有这个简单的 C 程序:
#include <stdlib.h>
#include <sys/wait.h>
#include <stdio.h>
#include <sys/ptrace.h>
int main(int argc, char *argv[]) {
pid_t pid = atoi(argv[1]);
printf("pid = %jd\n", (intmax_t) pid);
return ptrace(PT_ATTACHEXC, pid, 0, 0);
}
当我使用 gcc / cc 编译时,出现以下错误:
In file included from my-waiter.c:4: /usr/include/sys/ptrace.h:99:38: error: unknown type name 'caddr_t' int ptrace(int _request, pid_t _pid, caddr_t _addr, int _data); ^ 1 error generated.
有谁知道如何ptrace()
在 OSX 上使用?我不知道如何编译它。
答案1
如图所示用户4556274,您需要#include <sys/types.h>
先这样做#include <sys/ptrace.h>
(有关详细信息,请参阅当地的ptrace(3)
联机帮助页)。