[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