argv[0]

Petr Stehlik pstehlik na sophics.cz
Neděle Duben 6 14:56:29 CEST 2003


On Čt, 2003-04-03 at 18:18, Patrik Ostrihon wrote:
> Teoreticky je pouzitelje #ifdef... pre prislusnu platformu tu funkiu
> napisat zvlast ?

Nee. Platforem je moc.

> > execvp("jmeno") (nemusel jsem znat cestu k nemu, execvp hleda v $PATH),
> > tak v pripade, ze nikde nebyl nalezen, to cele nejak vytuhlo a waitpid()
> > (*1) se nikdy nedockal.

> Skusili ste si to trejsnut :) (strace) konkretne:
> strace -o stace.log -f /cesta_k_prvej_binarke/prva_binarka 

13395 fork()                            = 13399
13395 wait4(13399,  <unfinished ...>

to je jeden thread, a ten druhy:

13399 close(6)                          = 0
13399 close(5)                          = 0
13399 getpid()                          = 13399
13399 getrlimit(0x3, 0xbffffa40)        = 0
13399 setrlimit(RLIMIT_STACK, {rlim_cur=RLIM_INFINITY,
rlim_max=RLIM_INFINITY}) = 0
13399 getpid()                          = 13399
13399 getrlimit(0x3, 0xbffff8a0)        = 0
13399 rt_sigaction(SIGRTMIN, {SIG_DFL}, NULL, 8) = 0
13399 rt_sigaction(SIGRT_1, {SIG_DFL}, NULL, 8) = 0
13399 rt_sigaction(SIGRT_2, {SIG_DFL}, NULL, 8) = 0
13399 execve("/usr/local/bin/aratapif", ["aratapif", "tap0",
"192.168.0.1", "192.168.0.2", "255.255.255.0", "1500"], [/* 29 vars */])
= -1 ENOENT (No such file or directory)

> tady zkousel i zbytek $PATH, coz jsem vystrihl, az na posledni

13399 getpid()                          = 13399
13399 getrlimit(0x3, 0xbffff8a0)        = 0
13399 rt_sigaction(SIGRTMIN, {SIG_DFL}, NULL, 8) = 0
13399 rt_sigaction(SIGRT_1, {SIG_DFL}, NULL, 8) = 0
13399 rt_sigaction(SIGRT_2, {SIG_DFL}, NULL, 8) = 0[pid 13437]
execve("/usr/lib/jdk1.3.1/bin/aratapif", ["aratapif", "tap0",
"192.168.0.1", "192.168.0.2", "255.255.255.0", "1500"], [/* 29 vars */])
= -1 ENOENT (No such file or directory)

a vic ani slovo.

> > Klicove je, ze ten waitpid se nikdy nedocka, pokud execvp nenajde
> > program ke spusteni. Pripada mi, ze se ten execvp vubec nevrati. Coz je
> > naopak nez tvrdi 'man execvp'. Nevim, kde mam jakou chybu.
> 
> skuste ten strace uvidite, vratit by sa to malo

nevrati se nic. Zasekne se to a Ctrl+Z je jedina sance, vsechno ostatni
je tuhe (coz muze byt treba tim, ze SDL uz je castecne nainicializovane
a klavesnici uz drzi ta aplikace).

Petr




Další informace o konferenci Linux