Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    15

    [C/C++] Probelemi con l'istruzione fork()

    Ciao a tutti,
    mi sto informando per la prima volta sulla programmazione concorrente, e sto provando a compilare un semplice programma che crea un thread figlio. Come compilatore utilizzo Dev-C++. L'errore che ottengo compilando il codice è il seguente:

    `fork' undeclared (first use this function)

    Qui di seguito posto il codice:

    codice:
    #include <stdio.h>      /* needed for printf() and fprintf() */
    #include <stdlib.h>     /* needed for EXIT_FAILURE/EXIT_SUCCESS */
    #include <string.h>     /* needed for strerror() */
    #include <unistd.h>     /* needed for fork() and getpid() */
    #include <sys/types.h>  /* needed for pid_t */
    #include <errno.h>      /* needed for errno */ 
    
    
    int main () 
    {
    	pid_t res;
    	int x = 1;
    	res = fork ();
    	if (res < 0) 
    	{
    		perror ("La fork e fallita: non ho creato il figlio.\n");
    		exit (-1);
    	}
    	x++; /* sia padre che figlio eseguono questa istruzione */
    	if (res == 0) 
    	{
    		/* solo il figlio esegue questo codice */
    		x--;
    		printf ("Ciao sono il figlio. x = %d.\n", x);
    	}
    	else 
    	{
    		/* solo il padre esegue questo codice */
    		x += 7;
    		printf ("Ciao sono il padre. x = %d.\n", x);
    	}
    	scanf("%d", &x);
    	return EXIT_SUCCESS;
    }
    Non capisco perchè non trova la funzione fork(), gli include mi sembra di averli messi tutti...

    Grazie a tutti e speriamo qualcuno mi riesca ad aiutare!

    Ciao

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    fork esiste solo su sistemi Unix.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    15
    mmm e quindi come devo fare? scusate l'ignoranza

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Lallost
    mmm e quindi come devo fare? scusate l'ignoranza
    Quindi su Windows non puoi usare fork Se vuoi usare fork devi lavorare su Mac OS X (o su un sistema Linux). Una funzione che fa la stessa cosa su Windows non mi pare ci sia, però potresti dare un'occhiata a CreateProcess.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    15
    Può essere che usando il compilatore GCC-GNU riesco a compilare il programma?

  6. #6
    no, devi usare api apposite per windows

    la fork() non funziona mica grazie al compilatore, ma grazie al sistema operativo che c'è sotto

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 © 2025 vBulletin Solutions, Inc. All rights reserved.