Доступ к системному вызову напрямую из пользовательской программы
В Ubuntu - ядро 2.6.32.2
Как вызвать уже существующий системный вызов из кода пользователя напрямую, без помощи какой-либо библиотеки? Я читал в книгах и в Интернете, чтобы решить эту проблему, затем написал следующий код, но все еще получаю ошибку. Пожалуйста помоги
Хотите узнать идентификатор процесса текущего процесса
#include
#include // for __NR_getpid
_syscall0(int, getpid)
int main() {
printf("Current Process ID : %d\n",getpid());
return 0;
}
Ошибка при компиляции:
root@Omkant:~/os# gcc -Wall getpid.c -o getpid
getpid.c:5:16: error: expected declaration specifiers or ‘...’ before ‘getpid’
getpid.c:5:1: warning: data definition has no type or storage class
getpid.c:5:1: warning: type defaults to ‘int’ in declaration of ‘_syscall0’
getpid.c: In function ‘main’:
getpid.c:8:2: warning: implicit declaration of function ‘getpid’
Какие'Проблема в коде? пожалуйста помоги..."