Compile o programa ptrace () no OSX

2

Eu tenho este programa C simples no MacOS:

#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);
}

quando eu compilo com gcc / cc, recebo este erro:

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.

alguém sabe como usar ptrace() no OSX? Não consigo descobrir como fazer isso para compilar.

    
por Alexander Mills 28.02.2018 / 21:46

1 resposta

2

Como indicado por user4556274 , você precisa de #include <sys/types.h> antes de você #include <sys/ptrace.h> (ver seu local ptrace(3) manpage para detalhes).

    
por 28.02.2018 / 23:15