Funzione open()

di il
3 risposte

Funzione open()

Ciao a tutti,
vorrei sapere se esiste un modo di creare un numero n di file NON "manualmente?" . Mi spiego meglio, sto facendo un esercizio che dice: un processo padre si occupa di creare 16 file ( con la funzione open()) inizializzati a 0, che poi saranno condivisi e modificati dai suoi processi figli. Io ho creato i file con:
open("MAi,"0",1);
, con i =1,..,16; ma mi chiedevo se ci fosse un altro modo di fare?
Grazie in anticipo per l'aiuto

3 Risposte

  • Re: Funzione open()

    Lo fai con un ciclo fir e una variabile i ma non con quel modo di scrivere la open che non ha senso. Crea una variabile stringa per il nome e con la sprintf formi il nome con la parte numerica. Poi usi la variabile nella open.

    Usate i file e non conoscete le basi dell'utilizzo delle stringhe?
  • Re: Funzione open()

    Ciao, grazie della risposta,

    Ha assolutamente ragione, ho sbagliato a scrivere l'istruzione, quello che ho mandato è una write()( non una open()) . Per la mia difesa, erano le 3 di mattina ed ero distrutta .
    A dire la verità, per me la sprintf serviva per concatenare più output in una stringa, da ritornare alla fine per esempio.
    int fd[NUM_FILE];
    	for (int i = 0; i < NUM_FILE; i++)
    	{
    	    	char MA[4];// 3 caratteri per MAi + 1 caratere per fine stringa \0
    		sprintf(MA, "MA%d", i);
     		fd[i] = open(MA,O_CREAT|O_RDWR,0777);
     		if (fd[i]==-1)
    		{
    			printf("errno=%d\n",errno);
    			perror("main");
    		}
    		r=write(fd[i], "0",1); 
    	}
    	
  • Re: Funzione open()

    E infatti stai concatenando due costanti stringa e una variabile
Devi accedere o registrarti per scrivere nel forum
3 risposte