IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Comportement bizarre du programme


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Profil pro
    Inscrit en
    Mars 2009
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 349
    Par défaut Comportement bizarre du programme
    Bonjour voilà j'ai cherché mais je vois pas l'erreur, erreur y a j'en suis sur
    Bon voilà le soucis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ ./Create_LaunchBar_XFCE /usr/local/share/applications/
    Liste des fichiers .destop:
    	0: AdobeReader.desktop
    Soumission du fichier: ��V{0/usr/local/share/applications/
    Impossible d'ouvrir le fichier :��V{0/usr/local/share/applications/
    Plutôt bizzarre!

    Donc si un oeil externe peut m'aider un peu je lui serait très reconanissant. merci
    voila le source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    #include <stdio.h>
    #include <stdlib.h>
    #include <dirent.h>
    #include <string.h>
    #include <regex.h>
     
    void Usage(char const *executable);
    void adresse_variable(void const *ptr);
    void fn_calloc (void *ptr,size_t const taille1, size_t const taille2);
    void *fn_realloc(void *ptr,size_t const taille);
    void Verif_Chemin(char *chemin);
    void Concatenation_URL(char const *chemin,char const *nom_fichier,char *URL);
    char **Lire_Repertoire (char const *chemin,char **tableau_de_fichier);
    void Lire_Fichier(char const *URL);
    void Creer_Launcher_XML(char *fichier_src,char *exec, char *startupNotify, char *icon, char *comment);
    void Expression_Reguliere(FILE *file, char const *motif);
     
     
    int main(int argc, char *argv[])
    {
        char *chemin = NULL;
        char **tableau_de_fichier = NULL;
        char *URL = NULL;
        short i = 0;
     
        if ((argc == 1) || (argc > 2))
        {
            Usage(argv[0]);
        }
        else
        {
            fn_calloc (chemin, sizeof(argv[1]), sizeof(char) );
     
            chemin = argv[1];
     
            Verif_Chemin(chemin);
     
            tableau_de_fichier = Lire_Repertoire(chemin,tableau_de_fichier);
     
            for (i = 0 ;tableau_de_fichier[i] != NULL ; i++)
            {
                URL = fn_realloc(URL, sizeof(strlen(chemin) + strlen(tableau_de_fichier[i]) + 1));
                Concatenation_URL(chemin,tableau_de_fichier[i],URL);
     
                printf("Soumission du fichier: %s\n", URL);
     
                Lire_Fichier(URL);
            }
            free(chemin);
            free(tableau_de_fichier);
            free(URL);
     
        }
        exit(EXIT_SUCCESS);
    }
     
    void Usage(char const *executable)
    {
        printf("Usage: %s /Path/to/desktop/directory\n", executable);
        exit(EXIT_FAILURE);
    }
     
    void adresse_variable(void const *ptr)
    {
        printf("L'adresse de la variable est : %p\n", ptr);
    }
     
    void fn_calloc (void *ptr,size_t const nb_element, size_t const taille)
    {
     
        ptr = calloc(nb_element, taille);
        if (ptr == NULL)
        {
            fprintf(stderr,"Allocation impossible dans le fichier :%s ligne : %d",__FILE__,__LINE__);
            exit(EXIT_FAILURE);
        }
    }
     
    void *fn_realloc(void *ptr,size_t const taille)
    {
        char *tmp1 = NULL;
        tmp1 = realloc(tmp1, (taille + 1) * sizeof(char));
     
        if (tmp1 == NULL)
        {
            fprintf(stderr,"Allocation impossible dans le fichier :%s ligne : %d",__FILE__,__LINE__);				                /** realloc a échoué : on sort de la boucle                   */
            exit(EXIT_FAILURE);
        }
        else
        {
            ptr = tmp1;
        }
        return ptr;
    }
     
    void Verif_Chemin(char *chemin)
    {
        char *tmp = NULL;
        size_t Longueur_Chemin = strlen(chemin);
     
        if (strcmp(&chemin[Longueur_Chemin-1],"/") != 0)
        {
            tmp = chemin;                                                                                                           /** Allocation temporaire du contenu du tableau */
            chemin = fn_realloc(chemin, (strlen("/")+ strlen(chemin)) );                                                            /** Agrandissement du tableau */
            chemin = tmp;                                                                                                           /** Réatribution du contenu du tableau */
            strcat(chemin,"/");									                                                                    /** Concaténation de 2 chaines                                                 */
        }
    }
     
    void Concatenation_URL(char const *chemin,char const *nom_fichier,char *URL)
    {
        size_t taille = 0;
     
    	taille = strlen(chemin) + strlen(nom_fichier) + 1;
     
    	fn_calloc(URL, taille, sizeof(char));
     
    	strcat(URL,chemin);
    	strcat(URL,nom_fichier);
    }
     
    char **Lire_Repertoire (char const *chemin,char **tableau_de_fichier)
    {
        char *nom_fichier = NULL;
        short i = 0;
     
        DIR * rep = opendir(chemin);							                                                                    /** Ouverture du répertoire passez en argument                 */
     
        if (rep != NULL)										                                                                    /** Vérifie l'ouverture du répertoire                                 */
        {
            struct dirent * file;
     
            tableau_de_fichier = (char **)calloc(1,sizeof(char*));
            fn_calloc(tableau_de_fichier[i],1,sizeof(char));
     
            printf("Liste des fichiers .destop:\n");
            while ((file = readdir(rep)) != NULL)
            {
                nom_fichier = file->d_name;
                if (  strstr(nom_fichier , ".desktop" )  )		                                                                    /** Le fichier porte l'extension desktop                                */
                {
                    printf("\t%d: %s\n",i, nom_fichier);
                    tableau_de_fichier = (char **)realloc(tableau_de_fichier,(i+1) * sizeof(char *));
                    fn_calloc(tableau_de_fichier[i], sizeof(strlen(nom_fichier) + 1), sizeof(char) );                               /** Agrandissement du tableau */
                    tableau_de_fichier[i] = nom_fichier;
                    i++;
                }
     
            }
        }
        else
        {
            perror("le chemin :spécifié est introuvable !\n");
            exit(EXIT_FAILURE);
        }
     
        closedir(rep);										                                                                    /** Fermeture du répertoire passez en argument                 */
     
        return tableau_de_fichier;
     
    }
     
    void Lire_Fichier(char const *URL)
    {
        char **motif = NULL;
        short i =0;
    	FILE * file = NULL;
     
    	file = fopen(URL,"r");
                                                                                                                                    /** Ouverture du fichier .desktop en lecture                    */
    	if (file != NULL)
        {
            printf("\nLe fichier %s est ouvert\n",URL);
     
            motif = (char **)calloc(4,sizeof(char*));
            motif[0] = "Exec=";
            motif[1] = "StartupNotify=";
            motif[2] = "Icon=";
            motif[3] = "Comment=";
     
            for(i = 0; i < 4; i++)
            {
                printf("%s\n",motif[i]);
                Expression_Reguliere(file, motif[i]);
            }
     
            fclose(file);
        }
        else
        {
            fprintf(stderr,"Impossible d'ouvrir le fichier :%s \n",URL);                                                  /** On affiche un message d'erreur                                              */
            exit(EXIT_FAILURE);
        }
     
    }
     
    void Creer_Launcher_XML(char *fichier_src,char *exec, char *startupNotify, char *icon, char *comment)
    {
        FILE* file = NULL;
        file = fopen("test.txt", "w+");							                                                                    /** Ouverture du fichier xml en écriture (vidé de son contenu)                */
     
    	if (file != NULL)
        {
            fclose(file);
        }
        else
        {
            perror("Impossible d'ouvrir le fichier!\n");		                                                                    /** On affiche un message d'erreur                                              */
            exit(EXIT_FAILURE);
        }
     
        (void) fichier_src;
        (void) exec;
        (void) startupNotify;
        (void) icon;
        (void) comment;
    }
     
    void Expression_Reguliere(FILE *file, char const *motif)
    {
        short num_ligne = 0;
        int err = 0;
        int match = 0;
        char *text = NULL;
        size_t taille;
        char ligne[1024];
        regex_t m;
     
            err = regcomp(&m,motif,REG_EXTENDED);
            if (err == 0)
            {
                match = regexec(&m,ligne,0,NULL,0);
                while((fgets(ligne,1024 ,file)) != NULL)
                {
                    if(match == 0)
                    {
                        fprintf(stdout,"Le motif: \'%s\' a été trouvé à la ligne %d\n",motif,num_ligne);
                    }
                    else if (match == REG_NOMATCH)
                    {
                        printf ("Le motif: \'%s\' n\'a pas été trouvé\n", motif);
                    }
                    else
                    {
                        taille = regerror (err, &m, NULL, 0);
                        text = malloc (sizeof (*text) * taille);
                        if (text)
                        {
                            regerror (err, &m, text, taille);
                            fprintf (stderr, "%s\n", text);
                            free (text);
                        }
                        else
                        {
                            fprintf (stderr, "Memoire insuffisante\n");
                            exit (EXIT_FAILURE);
                        }
                    }
                    num_ligne++;
                }
                regfree(&m);
            }
            rewind(file);
    }

  2. #2
    Membre très actif

    Profil pro
    Inscrit en
    Mars 2009
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 349
    Par défaut
    j'ai corrigé le soucis il est presque 2heures du mat bon voilà le bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    #include <stdio.h>
    #include <stdlib.h>
    #include <dirent.h>
    #include <string.h>
    #include <regex.h>
     
    void Usage(char const *executable);
    void adresse_variable(void const *ptr);
    void *fn_calloc (void *ptr,size_t const taille1, size_t const taille2);
    void *fn_realloc(void *ptr,size_t const taille);
    void Verif_Chemin(char *chemin);
    void *Concatenation_URL(char const *chemin,char const *nom_fichier,char *URL);
    char **Lire_Repertoire (char const *chemin,char **tableau_de_fichier);
    void Lire_Fichier(char const *URL);
    void Creer_Launcher_XML(char *fichier_src,char *exec, char *startupNotify, char *icon, char *comment);
    void Expression_Reguliere(FILE *file, char const *motif);
     
     
    int main(int argc, char *argv[])
    {
        char *chemin = NULL;
        char **tableau_de_fichier = NULL;
        char *URL = NULL;
        short i = 0;
     
        if ((argc == 1) || (argc > 2))
        {
            Usage(argv[0]);
        }
        else
        {
            chemin = argv[1];
     
            Verif_Chemin(chemin);
     
            tableau_de_fichier = Lire_Repertoire(chemin,tableau_de_fichier);
     
            for (i = 0 ;tableau_de_fichier[i] != NULL ; i++)
            {
                printf("Valeur de i:%d\n",i);
                URL = Concatenation_URL(chemin,tableau_de_fichier[i],URL);
     
                printf("Soumission du fichier: %s\n", URL);
     
                Lire_Fichier(URL);
            }
     
            /*free(chemin);
            free(tableau_de_fichier);
            free(URL);*/
     
        }
        exit(EXIT_SUCCESS);
    }
     
    void Usage(char const *executable)
    {
        printf("Usage: %s /Path/to/desktop/directory\n", executable);
        exit(EXIT_FAILURE);
    }
     
    void adresse_variable(void const *ptr)
    {
        printf("L'adresse de la variable est : %p\n", ptr);
    }
     
    void *fn_calloc (void *ptr,size_t const nb_element, size_t const taille)
    {
     
        ptr = calloc(nb_element, taille);
        if (ptr == NULL)
        {
            fprintf(stderr,"Allocation impossible dans le fichier :%s ligne : %d",__FILE__,__LINE__);
            exit(EXIT_FAILURE);
        }
     
        return ptr;
    }
     
    void *fn_realloc(void *ptr,size_t const taille)
    {
        char *tmp1 = NULL;
        tmp1 = realloc(tmp1, (taille + 1) * sizeof(char));
     
        if (tmp1 == NULL)
        {
            fprintf(stderr,"Allocation impossible dans le fichier :%s ligne : %d",__FILE__,__LINE__);				                /** realloc a échoué : on sort de la boucle                   */
            exit(EXIT_FAILURE);
        }
        else
        {
            ptr = tmp1;
        }
        return ptr;
    }
     
    void Verif_Chemin(char *chemin)
    {
        char *tmp = NULL;
        size_t Longueur_Chemin = strlen(chemin);
     
        if (strcmp(&chemin[Longueur_Chemin-1],"/") != 0)
        {
            tmp = chemin;                                                                                                           /** Allocation temporaire du contenu du tableau */
            chemin = fn_realloc(chemin, (strlen("/")+ strlen(chemin)) );                                                            /** Agrandissement du tableau */
            chemin = tmp;                                                                                                           /** Réatribution du contenu du tableau */
            strcat(chemin,"/");									                                                                    /** Concaténation de 2 chaines                                                 */
        }
    }
     
    void *Concatenation_URL(char const *chemin,char const *nom_fichier,char *URL)
    {
        size_t taille = 0;
     
    	taille = strlen(chemin) + strlen(nom_fichier) + 1;
     
    	URL = fn_calloc(URL, taille, sizeof(char));
        printf("%ld\t%ld\t%ld\n",strlen(chemin),strlen(nom_fichier),taille);
    	strcpy(URL,chemin);printf("%s\n",URL);
    	strcat(URL,nom_fichier);printf("%s\n\n",URL);
    	return URL;
    }
     
    char **Lire_Repertoire (char const *chemin,char **tableau_de_fichier)
    {
        char *nom_fichier = NULL;
        short i = 0;
     
        DIR * rep = opendir(chemin);							                                                                    /** Ouverture du répertoire passez en argument                 */
     
        if (rep != NULL)										                                                                    /** Vérifie l'ouverture du répertoire                                 */
        {
            struct dirent * file;
     
            tableau_de_fichier = (char **)calloc(1,sizeof(char*));
            tableau_de_fichier[i] = fn_calloc(tableau_de_fichier[i],1,sizeof(char));
     
            printf("Liste des fichiers .destop:\n");
            while ((file = readdir(rep)) != NULL)
            {
                nom_fichier = file->d_name;
                if (  strstr(nom_fichier , ".desktop" )  )		                                                                    /** Le fichier porte l'extension desktop                                */
                {
                    printf("\t%d: %s\n",i, nom_fichier);
                    tableau_de_fichier = (char **)realloc(tableau_de_fichier,(i+1) * sizeof(char *));
                    tableau_de_fichier[i] = fn_calloc(tableau_de_fichier[i], sizeof(strlen(nom_fichier) + 1), sizeof(char) );                               /** Agrandissement du tableau */
                    tableau_de_fichier[i] = nom_fichier;
                    i++;
                }
     
            }
        }
        else
        {
            perror("le chemin :spécifié est introuvable !\n");
            exit(EXIT_FAILURE);
        }
     
        closedir(rep);										                                                                    /** Fermeture du répertoire passez en argument                 */
     
        return tableau_de_fichier;
     
    }
     
    void Lire_Fichier(char const *URL)
    {
        char **motif = NULL;
        short i =0;
    	FILE * file = NULL;
     
    	file = fopen(URL,"r");
                                                                                                                                    /** Ouverture du fichier .desktop en lecture                    */
    	if (file != NULL)
        {
            printf("\nLe fichier %s est ouvert\n",URL);
     
            motif = (char **)calloc(4,sizeof(char*));
            motif[0] = "Exec=";
            motif[1] = "StartupNotify=";
            motif[2] = "Icon=";
            motif[3] = "Comment=";
     
            for(i = 0; i < 4; i++)
            {
                printf("%s\n",motif[i]);
                Expression_Reguliere(file, motif[i]);
            }
     
            fclose(file);
        }
        else
        {
            fprintf(stderr,"Impossible d'ouvrir le fichier :%s \n",URL);                                                  /** On affiche un message d'erreur                                              */
            exit(EXIT_FAILURE);
        }
     
    }
     
    void Creer_Launcher_XML(char *fichier_src,char *exec, char *startupNotify, char *icon, char *comment)
    {
        FILE* file = NULL;
        file = fopen("test.txt", "w+");							                                                                    /** Ouverture du fichier xml en écriture (vidé de son contenu)                */
     
    	if (file != NULL)
        {
            fclose(file);
        }
        else
        {
            perror("Impossible d'ouvrir le fichier!\n");		                                                                    /** On affiche un message d'erreur                                              */
            exit(EXIT_FAILURE);
        }
     
        (void) fichier_src;
        (void) exec;
        (void) startupNotify;
        (void) icon;
        (void) comment;
    }
     
    void Expression_Reguliere(FILE *file, char const *motif)
    {
        short num_ligne = 0;
        int err = 0;
        int match = 0;
        char *text = NULL;
        size_t taille;
        char ligne[1024];
        regex_t m;
     
            err = regcomp(&m,motif,REG_EXTENDED);
            if (err == 0)
            {
                match = regexec(&m,ligne,0,NULL,0);
                while((fgets(ligne,1024 ,file)) != NULL)
                {
                    if(match == 0)
                    {
                        fprintf(stdout,"Le motif: \'%s\' a été trouvé à la ligne %d\n",motif,num_ligne);
                    }
                    else if (match == REG_NOMATCH)
                    {
                        printf ("Le motif: \'%s\' n\'a pas été trouvé\n", motif);
                    }
                    else
                    {
                        taille = regerror (err, &m, NULL, 0);
                        text = malloc (sizeof (*text) * taille);
                        if (text)
                        {
                            regerror (err, &m, text, taille);
                            fprintf (stderr, "%s\n", text);
                            free (text);
                        }
                        else
                        {
                            fprintf (stderr, "Memoire insuffisante\n");
                            exit (EXIT_FAILURE);
                        }
                    }
                    num_ligne++;
                }
                regfree(&m);
            }
            rewind(file);
    }
    Quelqu'un peut me dire pourquoi mes regexp ne match pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    $ ./Create_LaunchBar_XFCE /usr/local/share/applications/
    Liste des fichiers .destop:
    	0: AdobeReader.desktop
    Valeur de i:0
    30	19	50
    /usr/local/share/applications/
    /usr/local/share/applications/AdobeReader.desktop
     
    Soumission du fichier: /usr/local/share/applications/AdobeReader.desktop
     
    Le fichier /usr/local/share/applications/AdobeReader.desktop est ouvert
    Exec=
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    Le motif: 'Exec=' n'a pas été trouvé
    StartupNotify=
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Le motif: 'StartupNotify=' n'a pas été trouvé
    Icon=
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Le motif: 'Icon=' n'a pas été trouvé
    Comment=
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé
    Le motif: 'Comment=' n'a pas été trouvé

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    À la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     match = regexec(&m,ligne,0,NULL,0);
                while((fgets(ligne,1024 ,file)) != NULL)
                {
    je mettrai plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                while((fgets(ligne,1024 ,file)) != NULL)
                {
                    match = regexec(&m,ligne,0,NULL,0);
    Sinon, l'allocation des motifs n'est pas top :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            motif = (char **)calloc(4,sizeof(char*));
            motif[0] = "Exec=";
            motif[1] = "StartupNotify=";
            motif[2] = "Icon=";
            motif[3] = "Comment=";

  4. #4
    Membre très actif

    Profil pro
    Inscrit en
    Mars 2009
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 349
    Par défaut
    Je te remercie pour ta réponse.
    Malheureusement je suis en déplacement depuis le début de la semaine et je suis dans l'incapacité de tester. Je te remercie pour ton aide et tes remarques.
    J'adapterais aussi la méthodes d'allocations des motifs avec des calloc.
    Merci

  5. #5
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par bioinfornatics Voir le message
    J'adapterais aussi la méthodes d'allocations des motifs avec des calloc.
    strdup bien que non-standard, est très pratique pour ça.
    Dernière modification par Invité(e) ; 05/04/2009 à 18h44. Motif: +a

  6. #6
    Membre très actif

    Profil pro
    Inscrit en
    Mars 2009
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 349
    Par défaut
    Bonjour,
    bon je comprend pas ou est le problème bien que je vois que ma variable ne contient pas la bonne chose mais pourquoi !!!!

    Le code source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    #include <stdio.h>
    #include <stdlib.h>
    #include <dirent.h>
    #include <string.h>
    #include <regex.h>
     
    void Usage(char const *executable);
    void adresse_variable(void const *ptr);
    void *fn_calloc (void *ptr,size_t const taille1, size_t const taille2);
    void *fn_realloc(void *ptr,size_t const taille);
    void Verif_Chemin(char *chemin);
    void *Concatenation_URL(char const *chemin,char const *nom_fichier,char *URL);
    char **Lire_Repertoire (char const *chemin,char **tableau_de_fichier);
    void Lire_Fichier(char const *URL);
    void Creer_Launcher_XML(char *fichier_src,char *exec, char *startupNotify, char *icon, char *comment);
    void Expression_Reguliere(FILE *file, char const *motif);
     
     
    int main(int argc, char *argv[])
    {
        char *chemin = NULL;
        char **tableau_de_fichier = NULL;
        char *URL = NULL;
        short i = 0;
     
        if ((argc == 1) || (argc > 2))
        {
            Usage(argv[0]);
        }
        else
        {
            chemin = fn_calloc(chemin,(strlen(argv[1]) + 1),sizeof(char));
            strcpy(chemin,argv[1]);
     
            Verif_Chemin(chemin);
     
            tableau_de_fichier = Lire_Repertoire(chemin,tableau_de_fichier);
     
            for (i = 0 ;tableau_de_fichier[i] != NULL ; i++)
            {
                printf("Valeur de i:%d\n\n",i);
     
                printf("Soumission du fichier:\t%s\n\n", tableau_de_fichier[i]);
     
                URL = Concatenation_URL(chemin,tableau_de_fichier[i],URL);
     
                printf("Soumission de l\'URL:\t%s\n\n", URL);
     
                Lire_Fichier(URL);
                free(URL);
            }
     
            free(chemin);
            free(tableau_de_fichier);
     
        }
        exit(EXIT_SUCCESS);
    }
     
    void Usage(char const *executable)
    {
        printf("Usage: %s /Path/to/desktop/directory\n", executable);
        exit(EXIT_FAILURE);
    }
     
    void adresse_variable(void const *ptr)
    {
        printf("L'adresse de la variable est : %p\n", ptr);
    }
     
    void *fn_calloc (void *ptr,size_t const nb_element, size_t const taille)
    {
     
        ptr = calloc(nb_element, taille);
        if (ptr == NULL)
        {
            fprintf(stderr,"Allocation impossible dans le fichier :%s ligne : %d",__FILE__,__LINE__);
            exit(EXIT_FAILURE);
        }
     
        return ptr;
    }
     
    void *fn_realloc(void *ptr,size_t const taille)
    {
        char *tmp1 = NULL;
        tmp1 = realloc(tmp1, (taille + 1) * sizeof(char));
     
        if (tmp1 == NULL)
        {
            fprintf(stderr,"Allocation impossible dans le fichier :%s ligne : %d",__FILE__,__LINE__);				                /** realloc a échoué : on sort de la boucle                   */
            exit(EXIT_FAILURE);
        }
        else
        {
            ptr = tmp1;
        }
        return ptr;
    }
     
    void Verif_Chemin(char *chemin)
    {
        char *tmp = NULL;
        size_t Longueur_Chemin = strlen(chemin);
     
        if (strcmp(&chemin[Longueur_Chemin-1],"/") != 0)
        {
            tmp = chemin;                                                                                                           /** Allocation temporaire du contenu du tableau */
            chemin = fn_realloc(chemin, (strlen("/")+ strlen(chemin)) );                                                            /** Agrandissement du tableau */
            chemin = tmp;                                                                                                           /** Réatribution du contenu du tableau */
            strcat(chemin,"/");									                                                                    /** Concaténation de 2 chaines                                                 */
        }
    }
     
    void *Concatenation_URL(char const *chemin,char const *nom_fichier,char *URL)
    {
        size_t taille = 0;
     
    	taille = strlen(chemin) + strlen(nom_fichier) + 1;
     
    	URL = fn_calloc(URL, taille, sizeof(char));
     
        printf("Fonction Concatenation_URL:\t%ld\t%ld\t%ld\nLe chemin:\t%s\tNom du fichier: %s\n",strlen(chemin),strlen(nom_fichier),taille,chemin,nom_fichier);
     
    	strcpy(URL,chemin);
    	strcat(URL,nom_fichier);
     
    	printf("URL:\t\t%s\n\n",URL);
    	return URL;
    }
     
    char **Lire_Repertoire (char const *chemin,char **tableau_de_fichier)
    {
        char *nom_fichier = NULL;
        short i = 0;
     
        DIR * rep = opendir(chemin);							                                                                    /** Ouverture du répertoire passez en argument                 */
     
        if (rep != NULL)										                                                                    /** Vérifie l'ouverture du répertoire                                 */
        {
            struct dirent * file;
     
            tableau_de_fichier = (char **)calloc(1,sizeof(char*));
            tableau_de_fichier[i] = fn_calloc(tableau_de_fichier[i],1,sizeof(char));
     
            printf("Liste des fichiers .destop:\n");
            while ((file = readdir(rep)) != NULL)
            {
                nom_fichier = file->d_name;
                if (  strstr(nom_fichier , ".desktop" )  )		                                                                    /** Le fichier porte l'extension desktop                                */
                {
                    printf("\t%d: %s\n",i, nom_fichier);
                    tableau_de_fichier = (char **)realloc(tableau_de_fichier,(i+1) * sizeof(char *));
                    tableau_de_fichier[i] = fn_calloc(tableau_de_fichier[i], sizeof(strlen(nom_fichier) + 1), sizeof(char) );                               /** Agrandissement du tableau */
                    tableau_de_fichier[i] = nom_fichier;
                    i++;
                }
     
            }
        }
        else
        {
            perror("le chemin :spécifié est introuvable !\n");
            exit(EXIT_FAILURE);
        }
     
        closedir(rep);										                                                                    /** Fermeture du répertoire passez en argument                 */
     
        return tableau_de_fichier;
    }
     
    void Lire_Fichier(char const *URL)
    {
        char **motif = NULL;
        short i =0;
    	FILE * file = NULL;
     
    	file = fopen(URL,"r");
                                                                                                                                    /** Ouverture du fichier .desktop en lecture                    */
    	if (file != NULL)
        {
            printf("\nLe fichier %s est ouvert\n",URL);
     
            motif = (char **)calloc(4,sizeof(char*));
     
            motif[0] = fn_calloc(motif[0], sizeof(strlen("Exec=") + 1), sizeof(char) );
            motif[0] = "Exec=";
     
            motif[1] = fn_calloc(motif[1], sizeof(strlen("StartupNotify=") + 1), sizeof(char) );
            motif[1] = "StartupNotify=";
     
            motif[2] = fn_calloc(motif[2], sizeof(strlen("Icon=") + 1), sizeof(char) );
            motif[2] = "Icon=";
     
            motif[3] = fn_calloc(motif[3], sizeof(strlen("Comment=") + 1), sizeof(char) );
            motif[3] = "Comment=";
     
            for(i = 0; i < 4; i++)
            {
                printf("%s\n",motif[i]);
                Expression_Reguliere(file, motif[i]);
            }
     
            fclose(file);
        }
        else
        {
            fprintf(stderr,"Impossible d'ouvrir le fichier :%s \n",URL);                                                  /** On affiche un message d'erreur                                              */
            exit(EXIT_FAILURE);
        }
     
    }
     
    void Creer_Launcher_XML(char *fichier_src,char *exec, char *startupNotify, char *icon, char *comment)
    {
        FILE* file = NULL;
        file = fopen("test.txt", "w+");							                                                                    /** Ouverture du fichier xml en écriture (vidé de son contenu)                */
     
    	if (file != NULL)
        {
            fclose(file);
        }
        else
        {
            perror("Impossible d'ouvrir le fichier!\n");		                                                                    /** On affiche un message d'erreur                                              */
            exit(EXIT_FAILURE);
        }
     
        (void) fichier_src;
        (void) exec;
        (void) startupNotify;
        (void) icon;
        (void) comment;
    }
     
    void Expression_Reguliere(FILE *file, char const *motif)
    {
        short num_ligne = 0;
        int err = 0;
        int match = 0;
        char *text = NULL;
        size_t taille;
        char ligne[1024];
        regex_t m;
     
            err = regcomp(&m,motif,REG_EXTENDED);
            if (err == 0)
            {
                while((fgets(ligne,1024 ,file)) != NULL)
                {
                    match = regexec(&m,ligne,0,NULL,0);
     
                    if(match == 0)
                    {
                        fprintf(stdout,"Le motif: \'%s\' a été trouvé à la ligne %d\n",motif,num_ligne);
                    }
                    else if (match == REG_NOMATCH)
                    {
                        /*printf ("Le motif: \'%s\' n\'a pas été trouvé\n", motif);*/
                    }
                    else
                    {
                        taille = regerror (err, &m, NULL, 0);
                        text = malloc (sizeof (*text) * taille);
                        if (text)
                        {
                            regerror (err, &m, text, taille);
                            fprintf (stderr, "%s\n", text);
                            free (text);
                        }
                        else
                        {
                            fprintf (stderr, "Memoire insuffisante\n");
                            exit (EXIT_FAILURE);
                        }
                    }
                    num_ligne++;
                }
                regfree(&m);
            }
            rewind(file);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    $ ./Create_LaunchBar_XFCE /usr/share/applications
    Liste des fichiers .destop:
    	0: gpk-prefs.desktop
    	1: miro.desktop
    	2: fedora-glade-3.desktop
    	3: fedora-google-reader.desktop
    	4: pidgin.desktop
    ....
    	203: fedora-gparted.desktop
    	204: gnome-gcalctool.desktop
    Valeur de i:0
     
    Soumission du fichier:	redhat-system-config-printer.desktop
     
    Fonction Concatenation_URL:	24	36	61
    Le chemin:	/usr/share/applications/	Nom du fichier: redhat-system-config-printer.desktop
    URL:		/usr/share/applications/redhat-system-config-printer.desktop
     
    Soumission de l URL:	/usr/share/applications/redhat-system-config-printer.desktop
     
     
    Le fichier /usr/share/applications/redhat-system-config-printer.desktop est ouvert
    Exec=
    Le motif: 'Exec=' a été trouvé à la ligne 111
    StartupNotify=
    Le motif: 'StartupNotify=' a été trouvé à la ligne 115
    Icon=
    Le motif: 'Icon=' a été trouvé à la ligne 114
    Comment=
    Le motif: 'Comment=' a été trouvé à la ligne 61
    Valeur de i:1
     
    Soumission du fichier:	
     
    Fonction Concatenation_URL:	24	1	26
    Le chemin:	/usr/share/applications/	Nom du fichier: 
    URL:		/usr/share/applications/
     
    Soumission de l URL:	/usr/share/applications/
     
    Impossible d ouvrir le fichier :/usr/share/applications/

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Citation Envoyé par mabu Voir le message
    strdup bien que non-standard, est très pratique pour ça.
    Si strdup n'est pas standard, que faut-il faire à la place ? Se recoder cette fonction ?

    Pour l'instant j'utilise cette fonction sous Mac, Linux et Visual Studio 2005 et je n'ai pas encore eu de problème. Dans quelle situation pourrait-on avoir des soucis en utilisant cette fonction ?

    Merci d'avance

Discussions similaires

  1. Comportement bizarre d'un programme
    Par Henri dans le forum AWT/Swing
    Réponses: 0
    Dernier message: 05/06/2009, 18h40
  2. Réponses: 3
    Dernier message: 16/03/2005, 11h31
  3. [ACESS][MEMO][ISNULL]Comportement bizarre
    Par seb.49 dans le forum ASP
    Réponses: 2
    Dernier message: 09/06/2004, 10h44
  4. [HttpClient] comportement bizarre, saute des catch()...
    Par iubito dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 04/02/2004, 15h25
  5. [Sybase] Comportement bizarre d'une table
    Par sdozias dans le forum Sybase
    Réponses: 4
    Dernier message: 03/02/2004, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo