ubuntuusers.de

Warnung bei funktionsfähigem C-Programm

Status: Gelöst | Ubuntu-Version: Ubuntu
Antworten |

kingluy

Anmeldungsdatum:
20. Oktober 2006

Beiträge: Zähle...

Hallo,
ich bekomme bei einem C-Programm, das in der Schule(Suse) funktioniert, immer eine Fehlermeldung beim compilieren.
Im Wiki und Forum habe ich schon gesucht, aber nichts brauchbares gefunden. Einige im Forum haben zwar ähnliche Fehlermeldungen, aber keine passenden Lösungen. Im Wiki stoße ich auch immer nur auf das Paket libc6-dev, das ich bereits installiert habe.
Ich zeige euch mal das Programm und die Fehlermeldung:

Das Programm forc.c schön farbig ☺

1 #include <stdio.h>
2 #include <unistd.h>
3 #include <sys/wait.h>
4 #include <sys/types.h>

5
6 int main(void)
7 {
8 pid_t pid;
9 int status;
10
11 printf("Programm gestartet\n");
12
13 pid = fork(); /* Kindprozess erzeugen */
14
15 if (pid < 0) { /* Fehler in fork aufgetreten */
16 perror("fork error"); /* Fehlermeldung ausgeben */
17 exit(1); /* Programm mit Exitstatus 1 beenden */
18 }
19 else if (pid == 0) { /* Kindprozess */
20 sleep(1); /* 1 sec schlafen */
21 printf("Kindprozess mit PID %d\n", getpid());
22 exit(100); /* Kindprozess mit Exitstatus 100 terminieren */
23 }
24
25 /* Elternrozess */
26 printf("Elternprozess mit PID %d\n", getpid());
27 printf("Kindprozess hat PID %d \n",pid);
28
29 pid = wait(&status); /* Auf die Terminierung des Kindprozesses warten */
30 if (pid > 0) { /* wait war erfolgreich */
31 printf("Kindprozess PID %d ",pid);
32
33 if (WIFEXITED(status)) /* Kind hat sich durch exit() selbst beendet */
34 printf("mit Exit-Status %d ", status >> 8);
35
36 printf("terminiert\n");
37 }
38 }

Fehlermeldung beim Kompilieren:

peter@peter-desktop:~/RsBs1/praktikum12$ cc fork.c -o fork
fork.c: In Funktion »main«:
fork.c:17: Warnung: unverträgliche implizite Deklaration der eingebauten Funktion »exit«
fork.c:22: Warnung: unverträgliche implizite Deklaration der eingebauten Funktion »exit«
peter@peter-desktop:~/RsBs1/praktikum12$

comm_a_nder

Avatar von comm_a_nder

Anmeldungsdatum:
5. Februar 2006

Beiträge: 2533

Wohnort: Dresden

ein

#include <stdlib.h>

hilft.

kingluy

(Themenstarter)

Anmeldungsdatum:
20. Oktober 2006

Beiträge: 27

Danke,
an eine so einfache Lösung hätte ich jetzt nicht gedacht. Das ist wirklich die Originaldatei, die in Suse funktioniert hat. Kann das am Editor liegen?

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17621

Wohnort: Berlin

kingluy hat geschrieben:

Kann das am Editor liegen?

Nein.
Oder stellst Du im Editor den Warnungslevel des Compilers ein, oder definierst Warn-Flags?

kingluy

(Themenstarter)

Anmeldungsdatum:
20. Oktober 2006

Beiträge: 27

Hmm, ne, sagt mir jetzt nichts.
Ich lasse das jetzt einfach mal so stehen. Hauptsache das läuft jetzt erstmal auf ubuntu.
thx noch mal für die Hilfe.

Antworten |