Binary mehrfach starten

Jan 'Red Bully' Seiffert redbully at cc.fh-luh.de
Wed Jul 21 13:03:27 CEST 2004


Hi,

Andre Landwehr schrieb:
> Hi,
> ein vermutlich triviales Problem,
Ich vermute kein triviales Problem...

> aber ich seh's irgendwie nicht. Folgendes C Programm:
> ------>
> #include <stdio.h>
> int main( int argc, char **argv ) {
>     getchar();
> }
Es gibt nur zwei Sachen dran auszusetzen:
- Rueckgabe von getchar() wird ignoriert, aber das sollte keine mucken
machen, und ist wohl so gewollt
- Deine main soll laut definition int zurueckgeben... ich seh aber kein
return -> undefined behaivior

> <------
> kompiliert mit "gcc -o meintest meintest.c"
versuchs doch mal mit "gcc -Wall -W -o meintest meintest.c"

> Einmal aufgerufen, läuft problemlos. Wenn ich es, während er im
> getchar() blockt, ein zweites Mal aufrufe, segfaultet das Programm
> umgehend; strace sagt:
> ------>
> execve("./meintest", ["./meintest"], [/* 28 vars */]) = 0
> uname({sys="Linux", node="bigmonster.cauldron.priv", ...}) = 0
> brk(0)                                  = 0
> brk(0)                                  = 0
> old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> = 0x40017000
> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> +++ killed by SIGSEGV +++
> <-----
> Was passiert und wie kann ich es verhindern?
Tja, hmmm, wenn ich das richtig Interpretiere, dann schmiert er schon
beim laden der dynamischen Bibliotheken ab, gesetz dem Fall dein System
arbeitet mit sowas...

Also:
Welches OS genau?
Welcher gcc genau?
Irgend was selber in die Entwicklungskette gebaut (libc aktualliesiert
etc.)?

> 
> Andre
> 
Gruss
	Jan

-- 
   extrn fact;     /* "What would I do differently if designing
                    *  UNIX today?  I'd spell creat() with an e."
                    *  -- Ken Thompson, approx. wording */
                                   [Dinge, die man aus "B" gelernt hat]



More information about the Linux mailing list