web-dev-qa-db-ja.com

OSXでptrace()プログラムをコンパイルする

私は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()を使用する方法を知っている人はいますか?これをコンパイルする方法がわかりません。

2
Alexander Mills

ser4556274 で示されているように、_#include <sys/types.h>_を実行する前に_#include <sys/ptrace.h>_を実行する必要があります(詳細については、ローカルのptrace(3)マンページを参照してください)。

2
Stephen Kitt