gpt4 book ai didi

在 OSX 上编译 ptrace() 程序

转载 作者:太空宇宙 更新时间:2023-11-04 01:19:01 25 4
gpt4 key购买 nike

我在 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.

有人知道如何在 OSX 上使用 ptrace() 吗?我不知道如何编译它。

最佳答案

caddr_t是在 <sys/types.h 中定义的 BS​​D 特定类型 header 。它不存在于 POSIX 中.

不太相关,因为您使用的是 Mac 操作系统。但是在使用 glibc 的现代 Linux 系统上,它会在 _DEFAULT_SOURCE 时暴露。宏被定义。具有旧 glibc 的系统(早于 glibc 2.20。_BSD_SOURCE 自 glibc 2.20 以来已被弃用)需要定义 _BSD_SOURCE .

关于在 OSX 上编译 ptrace() 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49038266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com