Esempio n. 1
0
void KGameSvgDocument::load(const QString& svgFilename)
{
    setSvgFilename(svgFilename);
    load();
}
int getFileContent(char* progName,char* filename,int sockcli)
{

    char nomFichierSvg[50];	// Nom du fichier de sauvegarde du résultat de la requète

    setSvgFilename(filename, nomFichierSvg);




    mkdir("../tmp",S_IRWXU | S_IRWXG |S_IRWXO);	// création du répertoire tmp s'il n'existe pas


    printf("[%d] Récupère le fichier et l'écrit dans la sortie standard. \n\n", getpid());

    FILE * fd;
    fd = fopen(nomFichierSvg , "w");
    while(true)
    {
        memset(buf, 0, BUF_SIZE);

        // version avec recv
//        if ( (nread = recv(sockcli, buf, BUF_SIZE, 0)) == -1 )
        if ( (nread = read(sockcli, buf, BUF_SIZE)) == -1 )	// Lit le socket
        {
            perror(" main()/read()\n");
            fflush(stderr);
            printf("[%ld] %s: Echec de lecture sur la socket.\n",(long int) getpid(), progName);
            fflush(stdout);
            exit(EXIT_FAILURE);
        }


        fputs( buf, fd);		// Ecrit dans le fichier
        printf("%s",buf);	// Ecrit dans la sortie standard
        fflush(stdout);
        if ( nread < BUF_SIZE )
        {

            printf("\n[%ld] Le transfert du fichier \"%s\" est terminé (voir %s). \n", (long int) getpid(), filename, nomFichierSvg);

            fflush(fd);
            fflush(stdout);


            if (ferror(fd))
            {
                /* une erreur s'est produite */
                perror (filename);
            }

            if(fclose(fd) == EOF)	// ferme le fichier
            {
                printf("[%d] .............. Problème de fermeture du fichier \"%s\".\n",getpid() , filename);
                exit(1);
            }

            return EXIT_SUCCESS;
        }

    }

    return EXIT_SUCCESS;
}