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