[pso] Linux - Compile question?

Andrei Popa ca at i-neo.ro
Sat Mar 17 17:08:33 EET 2007


On Sat, 2007-03-17 at 15:38 +0200, Alexandru Tudose wrote:
> Salutari!
> 
> Vad tot felul de programe date ca exemplu (in cartea de Love si pe net in general), de genul:
> 
> -----------------------------------------
> 
> #include <linux/unistd.h>
> _syscall0(int, getpid)
> 
> int main()
> {
>     int pid = getpid();
> }
> 
> 
> -----------------------------------------
> 
> Programul pare sa fie ceva menit sa ruleze in user space (desi intelegerea mea este ca user space programs nu au acces la linux/*) 
> si sa faca de acolo un syscall, dar nu reusesc sa-l compilez de nici un fel cu ceva de genul "gcc -o test 
> test.c"

_syscallX sunt niste macro-uri care genereaza functii, le copiaza
parametrii in registrii, apeleaza int 0x80 si returneaza codul intors.
http://lxr.linux.no/source/include/asm-i386/unistd.h?v=2.6.18#L345


pune si #include <errno.h> si o sa mearga.
_syscall0 apeleaza __syscall_return care seteaza variabila errno.


> 
> Am i missing something?
> 
> Am reusit sa chem un system call de mana folosing numai ASM - thanks Andrei Popa - sau folosing syscall() din <sys/syscall.h>
> dar nu ma lamuresc ce sa fac cu bucata asta de cod.
> 
> 
> Multumesc mult,
> Alexandru Tudose.
> _______________________________________________
> pso mailing list
> pso at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
-- 
Andrei Popa - 341C3



More information about the pso mailing list