Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Chiarimento sulla funzione fork [C]

    Salve a tutti sono nuovo sul forum, oggi mi sono avventurato nell'universo dei processi paralleli, in particolare utilizzando, come da titolo il linguaggio C, (scelta obbligata dalla mia professoressa).
    Sono 2 ore che cerco modi per riuscire a compilare un banalissimo programmino iniziale, che io ho capito ma proprio non capisco come risolvere il problema del mio compilatore.
    Il programma in questione è questo:
    codice:
    #include<stdio.h>
    #include<sys/types.h>
    void main (int argc, char*argv[])
    {
    pid_t pid;
    pid=fork();
    if (pid==0) /*processofiglio*/
    {
    printf ("sonoilprocessofiglio\n");
    exit();
    }
    else /*processopadre*/
    {
    printf ("sonoilprocessopadre\n");
    exit();
    }}
    Io in particolare utilizzo Qt Creator ma credo non cambi molto.
    Sostanzialmente mi da come errore "implicit declaration of function 'fork'" e non riesco proprio a capire come risolverlo. Stesso discorso per la "exit".
    Ho provato aggiungendo anche:
    codice:
    #include <unistd.h>

    e
    codice:
    #define _XOPEN_SOURCE 600
    che ho trovato su stackoverflow ma nulla... qualcuno può aiutarmi?

  2. #2
    fork è dichiarata in <unistd.h>, exit in <stdlib.h>, includendoli dovrebbe funzionare. Ovviamente dato che fork è una syscall UNIX devi star compilando su un sistema operativo UNIX-like, come Linux, OSX, BSD e similari; in particolare, su Windows fork non esiste, per cui se stai compilando su tale sistema operativo è normale che la compilazione fallisca.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Grazie mille MItaly! mi era sfuggita questa "piccola" condizione necessaria!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.