Forum: PC-Programmierung GCC explain_system() nicht gefunden


von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Servus,

mein gcc findet die Funktion explain_system() nicht. Header 
<libexplain/system.h> ist eingtebunden, das "explain" habe ich
installiert.

Muß ich da noch eine lib dazulinken ?
Wenn ja, welche ?

Im www habe ich da leider nichts gefunden.

von Eins N00B (Gast)


Lesenswert?

Was ist denn die Fehlermeldung?
Libs muss man häufig (aber nicht immer) noch Dazulinken.
Steht das nicht in der Doku deiner Lib (bin gerade zu faul, die selbst 
zu suchen)

von Thomas W. (Gast)


Lesenswert?

https://linux.die.net/man/3/explain

-> Synopsis

Gruesse

Th.

von Rolf M. (rmagnus)


Lesenswert?

Joachim D. schrieb:
> mein gcc findet die Funktion explain_system() nicht.

Sicher, dass es der gcc ist und nicht der Linker? Wie heißt die konkrete 
Fehlermeldung?

> Muß ich da noch eine lib dazulinken ?
> Wenn ja, welche ?

Na die libexplain.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Thomas W. schrieb:
> https://linux.die.net/man/3/explain

Danke, den hatte ich übersehen ;)

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Funktioniert:

system(command = "/home/jd/web/bin/tagesbelege.sh 
/home/jd/web/upload/REQ_6263e49e REQ_6263e49e") failed,
No child processes (10, ECHILD) because the process does not have any 
unwaited-for child processes;
the process is ignoring the SIGCHLD signal, this means that child 
processes that terminate will not
persist until waited forwrite result

wtf ???

von Thomas W. (Gast)


Lesenswert?

Joachim D. schrieb:
> Funktioniert:
>

>  failed,
> No child processes (10, ECHILD) because the process does not have any
> unwaited-for child processes;
> the process is ignoring the SIGCHLD signal, this means that child
> processes that terminate will not
> persist until waited forwrite result
>
> wtf ???

Du hast doch gefragt...Linux ist benutzerfreundlich, aber selektiv was 
freundlich ist.

Th.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Tscha...

Er hat das Script definitiv ausgeführt und ich rätsle was diese
Meldung eigentlich soll. -1 soll ja einen Fehler signalisieren,
nur welchen ? Aus der explain werde ich nicht schlau ...

von Thomas W. (Gast)


Lesenswert?

Ich kenne ja das Skript /home/jd/web/bin/tagesbelege.sh nicht so 
richtig, aber vielleicht hast Du das freundliche #!/bin/sh am Anfang des 
Skriptes vergessen.

Die Datei ist gefunden aber kein Prozess gestartet.

Gruesse

Th.

von Rolf M. (rmagnus)


Lesenswert?

system() ruft intern waitpid() auf, um darauf zu warten, dass der 
Kindprozess sich beendet, um an dessen Exit-Code zu kommen. Die 
Fehlermeldung will sagen, dass zum Zeitpunkt des Aufrufs von waitpid() 
der Kindprozess nicht existiert hat und daher kein Exit-Code verfügbar 
ist.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Hier mal das Script:
1
#!/bin/bash
2
3
/home/jd/web/bin/uimpach.x -i -D -Q -q $1 >>$1/sh.prt
4
ls -l $1/*.* >>$1/sh.prt
5
cp $1/sh.prt /home/jd/web/temp/$2.prt
6
rm -r $1

$1 ist das Arbeitsverzeichnis, $2 die request-id

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.