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 :

programme de reception du fichier par le noyau en C


Sujet :

C

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 12
    Points
    12
    Par défaut programme de reception du fichier par le noyau en C
    salut , je suis entrain de faire un programme d'envoi de fichier entre l'espace utilisateur et le noyau, le programme d'envoi par l'utilisateur a bien être compilé mais malheureusement, j'ai eu des erreurs lors de compilation du programme du réception de fichier par le noyau, notant que j'utilise make comme compilateur.
    voici mon programme :

    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
    #include <linux/init.h>
    #include <linux/module.h>
    #include <linux/kernel.h>
    # include <linux/sched.h>
    # include <linux/netlink.h>
    # include <net/sock.h>
    # include <stdlib.h>
    #include <stdio.h>
    #include <sys/sendfile.h> 
    # include <net/net_namespace.h>
    # define NETLINK_NITRO 17
     
    MODULE_LICENSE("GPL");
    int main ()
    {
     
    static struct sock *nl_sk = NULL;
     
    static void nl_data_ready (struct sk_buff *skb)
    {
     
       struct nlmsghdr *nlh = NULL;
       if(skb == NULL) {
       printk("skb is NULL \n");
       return ;
       }
       nlh = (struct nlmsghdr *)skb->data;
       printk(KERN_INFO "%s: received netlink message payload: %s\n", __FUNCTION__,
                  (char *) NLMSG_DATA(nlh));
     
    }
     
    static void netlink_test()
    {
     
    nl_sk = netlink_kernel_create(&init_net,NETLINK_NITRO,0, nl_data_ready,NULL, THIS_MODULE);
     
    }
    ssize_t sendfile(int fichier , int sock_fd , off_t * offset, size_t count);
    {
     FILE* fichier = NULL;
     
        fichier = fopen("/home/ahlem/GPL.odt" , "r+");
     
        if (fichier != NULL)
        {
    return 0 ;// On lit et on écrit dans le fichier
        }
     
    fclose(fichier) ;
    }
     
    sock_release(nl_sk->sk_socket);
    }
     
    module_init(my_module_init);
    module_exit(my_module_exit);


    s'il vous plait j'attend vos suggestions et conseils ... merci

  2. #2
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    voilà les erreurs :

    [root@Ahlem bin]# make
    make -C /lib/modules/2.6.32-220.7.1.el6.x86_64/build M=/home/ahlem/bin modules
    make[1]: entrant dans le répertoire « /usr/src/kernels/2.6.32-220.13.1.el6.centos.plus.x86_64 »
    CC [M] /home/ahlem/bin/prgfile.o
    /home/ahlem/bin/prgfile.c:7:21: erreur: stdlib.h : Aucun fichier ou dossier de ce type
    /home/ahlem/bin/prgfile.c:8:19: erreur: stdio.h : Aucun fichier ou dossier de ce type
    /home/ahlem/bin/prgfile.c:9:27: erreur: sys/sendfile.h : Aucun fichier ou dossier de ce type
    /home/ahlem/bin/prgfile.c:15: attention : function declaration isn’t a prototype
    /home/ahlem/bin/prgfile.c: In function ‘main’:
    /home/ahlem/bin/prgfile.c:20: erreur: invalid storage class for function ‘nl_data_ready’
    /home/ahlem/bin/prgfile.c:34: erreur: invalid storage class for function ‘netlink_test’
    /home/ahlem/bin/prgfile.c:34: attention : function declaration isn’t a prototype
    /home/ahlem/bin/prgfile.c:41: erreur: ‘FILE’ undeclared (first use in this function)
    /home/ahlem/bin/prgfile.c:41: erreur: (Each undeclared identifier is reported only once
    /home/ahlem/bin/prgfile.c:41: erreur: for each function it appears in.)
    /home/ahlem/bin/prgfile.c:41: erreur: ‘fichier’ undeclared (first use in this function)
    /home/ahlem/bin/prgfile.c:43: erreur: implicit declaration of function ‘fopen’
    /home/ahlem/bin/prgfile.c:50: erreur: implicit declaration of function ‘fclose’
    /home/ahlem/bin/prgfile.c: In function ‘__inittest’:
    /home/ahlem/bin/prgfile.c:56: erreur: ‘my_module_init’ undeclared (first use in this function)
    /home/ahlem/bin/prgfile.c: In function ‘__exittest’:
    /home/ahlem/bin/prgfile.c:57: erreur: ‘my_module_exit’ undeclared (first use in this function)
    make[2]: *** [/home/ahlem/bin/prgfile.o] Erreur 1
    make[1]: *** [_module_/home/ahlem/bin] Erreur 2
    make[1]: quittant le répertoire « /usr/src/kernels/2.6.32-220.13.1.el6.centos.plus.x86_64 »
    make: *** [all] Erreur 2

  3. #3
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    La première chose est d'utiliser les balises CODE pour qu'on puisse lire ton code plus facilement.

    Déclarer des fonctions statiques à l'intérieur du main ne me semble pas judicieux, pourquoi ne pas les déclarer normalement? (et tu ne déclare pas les prototypes de tes fonctions)

    Le fait que le compilateur ne trouve pas stdlib.h et stdio.h est un peu bizarre... S'il ne trouve pas ces fichiers, ce n'est pas étonnant que ton code ne fonctionne pas.


    Sans les balises code et en mettant des fonctions dedans, c'est assez difficile de lire ton code.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    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
    #include <linux/init.h>
    #include <linux/module.h>
    #include <linux/kernel.h>
    # include <linux/sched.h>
    # include <linux/netlink.h>
    # include <net/sock.h>
    # include <stdlib.h>
    #include <stdio.h>
    #include <sys/sendfile.h> 
    # include <net/net_namespace.h>
    # define NETLINK_NITRO 17
     
    MODULE_LICENSE("GPL");
    int main ()
    {
     
    static struct sock *nl_sk = NULL;
     
    static void nl_data_ready (struct sk_buff *skb)
    {
     
       struct nlmsghdr *nlh = NULL;
       if(skb == NULL) {
       printk("skb is NULL \n");
       return ;
       }
       nlh = (struct nlmsghdr *)skb->data;
       printk(KERN_INFO "%s: received netlink message payload: %s\n", __FUNCTION__,
                  (char *) NLMSG_DATA(nlh));
     
    }
     
    static void netlink_test()
    {
     
    nl_sk = netlink_kernel_create(&init_net,NETLINK_NITRO,0, nl_data_ready,NULL, THIS_MODULE);
     
    }
    ssize_t sendfile(int fichier , int sock_fd , off_t * offset, size_t count);
    {
     FILE* fichier = NULL;
     
        fichier = fopen("/home/ahlem/GPL.odt" , "r+");
     
        if (fichier != NULL)
        {
    return 0 ;// On lit et on écrit dans le fichier
        }
     
    fclose(fichier) ;
    }
     
    sock_release(nl_sk->sk_socket);
    }
     
    module_init(my_module_init);
    module_exit(my_module_exit);

  5. #5
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Pour mettre du code, tu peux cliquer sur l'image '#'

    Ou écrire : [codeX] ton_code [/code] (enlève juste de 'X' )

    ça serait beaucoup plus lisible donc plus facile pour nous de t'aider.

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    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
    #include <linux/init.h>
    #include <linux/module.h>
    #include <linux/kernel.h>
    # include <linux/sched.h>
    # include <linux/netlink.h>
    # include <net/sock.h>
    # include <stdlib.h>
    #include <stdio.h>
    #include <sys/sendfile.h> 
    # include <net/net_namespace.h>
    # define NETLINK_NITRO 17
     
    MODULE_LICENSE("GPL");
    int main ()
    {
     
    static struct sock *nl_sk = NULL;
     
    static void nl_data_ready (struct sk_buff *skb)
    {
     
       struct nlmsghdr *nlh = NULL;
       if(skb == NULL) {
       printk("skb is NULL \n");
       return ;
       }
       nlh = (struct nlmsghdr *)skb->data;
       printk(KERN_INFO "%s: received netlink message payload: %s\n", __FUNCTION__,
                  (char *) NLMSG_DATA(nlh));
     
    }
     
    static void netlink_test()
    {
     
    nl_sk = netlink_kernel_create(&init_net,NETLINK_NITRO,0, nl_data_ready,NULL, THIS_MODULE);
     
    }
    ssize_t sendfile(int fichier , int sock_fd , off_t * offset, size_t count);
    {
     FILE* fichier = NULL;
     
        fichier = fopen("/home/ahlem/GPL.odt" , "r+");
     
        if (fichier != NULL)
        {
    return 0 ;// On lit et on écrit dans le fichier
        }
     
    fclose(fichier) ;
    }
     
    sock_release(nl_sk->sk_socket);
    }
     
    module_init(my_module_init);
    module_exit(my_module_exit);

  7. #7
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    On va déjà faire un peu de tri là dedans :
    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
    #include <linux/init.h>
    #include <linux/module.h>
    #include <linux/kernel.h>
    # include <linux/sched.h>
    # include <linux/netlink.h>
    # include <net/sock.h>
    # include <stdlib.h>
    #include <stdio.h>
    #include <sys/sendfile.h> 
    # include <net/net_namespace.h>
    # define NETLINK_NITRO 17
    
    //en-tête des fonctions
    void nl_data_ready (struct sk_buff *skb);
    void netlink_test();
    ssize_t sendfile(int fichier , int sock_fd , off_t * offset, size_t count);
    
    
    //fonction main
    int main ()
    {
    
            MODULE_LICENSE("GPL");//je pense que ça va ici
    
           struct sock *nl_sk = NULL;
    
            
           sock_release(nl_sk->sk_socket);
    
    
           module_init(my_module_init);
           module_exit(my_module_exit);]//doit être à l'intérieur du main ou d'une fonction mais pas à l'extérieur.
          return 0;
    
    
    }
    
    //définition des fonctions
    
    
    void nl_data_ready (struct sk_buff *skb)
    {
    
       struct nlmsghdr *nlh = NULL;
       if(skb == NULL) {
             printk("skb is NULL \n");
             return ;
       }
       nlh = (struct nlmsghdr *)skb->data;
       printk(KERN_INFO "%s: received netlink message payload: %s\n", __FUNCTION__, (char *) NLMSG_DATA(nlh)  ); //je ne connait pas la fonction printk, ce n'est pas printf ?
    
    }
    
    void netlink_test()
    {
           nl_sk = netlink_kernel_create(&init_net, NETLINK_NITRO, 0, nl_data_ready, NULL, THIS_MODULE);
    }
    
    
    ssize_t sendfile(int fichier , int sock_fd , off_t * offset, size_t count)
    {
     FILE* fichier = NULL;
    
        fichier = fopen("/home/ahlem/GPL.odt" , "r+");
    
        if (fichier != NULL)
               return 0 ;// On lit et on écrit dans le fichier
    
         fclose(fichier) ; //le fichier doit être fermé si l'ouverture a réussi ie si fichier != NULL
         return ???;
    }

    Est-ce que tu aurais fait du Java avant ?
    La main est une fonction et non une classe de plus les classes n'existent pas en C.

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    merci pour votre aide , je va essayer avec le programme aprés vos modifications et je vous informer ultérieurement à quoi j'arrive...
    non je n'a pas une grande connaissance à propos de java ..

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    on n'a presque les memes erreurs
    voilà :

    [root@Ahlem bin]# make
    make -C /lib/modules/2.6.32-220.7.1.el6.x86_64/build M=/home/ahlem/bin modules
    make[1]: entrant dans le répertoire « /usr/src/kernels/2.6.32-220.13.1.el6.centos.plus.x86_64 »
    CC [M] /home/ahlem/bin/prgfile.o
    /home/ahlem/bin/prgfile.c:7:21: erreur: stdlib.h : Aucun fichier ou dossier de ce type
    /home/ahlem/bin/prgfile.c:8:19: erreur: stdio.h : Aucun fichier ou dossier de ce type
    /home/ahlem/bin/prgfile.c:9:27: erreur: sys/sendfile.h : Aucun fichier ou dossier de ce type
    /home/ahlem/bin/prgfile.c:15: attention : function declaration isn’t a prototype
    /home/ahlem/bin/prgfile.c:21: attention : function declaration isn’t a prototype
    /home/ahlem/bin/prgfile.c: In function ‘main’:
    /home/ahlem/bin/prgfile.c:31: erreur: invalid storage class for function ‘__inittest’
    /home/ahlem/bin/prgfile.c: In function ‘__inittest’:
    /home/ahlem/bin/prgfile.c:31: erreur: ‘my_module_init’ undeclared (first use in this function)
    /home/ahlem/bin/prgfile.c:31: erreur: (Each undeclared identifier is reported only once
    /home/ahlem/bin/prgfile.c:31: erreur: for each function it appears in.)
    /home/ahlem/bin/prgfile.c: In function ‘main’:
    /home/ahlem/bin/prgfile.c:31: attention : ISO C89 interdit les mélanges de déclarations et de code
    /home/ahlem/bin/prgfile.c:31: attention : ‘alias’ attribute ignored
    /home/ahlem/bin/prgfile.c:32: erreur: invalid storage class for function ‘__exittest’
    /home/ahlem/bin/prgfile.c: In function ‘__exittest’:
    /home/ahlem/bin/prgfile.c:32: erreur: ‘my_module_exit’ undeclared (first use in this function)
    /home/ahlem/bin/prgfile.c: In function ‘main’:
    /home/ahlem/bin/prgfile.c:32: attention : ISO C89 interdit les mélanges de déclarations et de code
    /home/ahlem/bin/prgfile.c:32: attention : ‘alias’ attribute ignored
    /home/ahlem/bin/prgfile.c:32: erreur: expected statement before ‘]’ token
    /home/ahlem/bin/prgfile.c: Hors de toute fonction :
    /home/ahlem/bin/prgfile.c:55: attention : function declaration isn’t a prototype
    /home/ahlem/bin/prgfile.c: In function ‘netlink_test’:
    /home/ahlem/bin/prgfile.c:56: erreur: ‘nl_sk’ undeclared (first use in this function)
    /home/ahlem/bin/prgfile.c: In function ‘sendfile’:
    /home/ahlem/bin/prgfile.c:62: erreur: ‘FILE’ undeclared (first use in this function)
    /home/ahlem/bin/prgfile.c:64: erreur: implicit declaration of function ‘fopen’
    /home/ahlem/bin/prgfile.c:66: attention : comparaison entre un pointeur et un entier
    /home/ahlem/bin/prgfile.c:69: erreur: implicit declaration of function ‘fclose’
    /home/ahlem/bin/prgfile.c:70: erreur: expected expression before ‘?’ token
    make[2]: *** [/home/ahlem/bin/prgfile.o] Erreur 1
    make[1]: *** [_module_/home/ahlem/bin] Erreur 2
    make[1]: quittant le répertoire « /usr/src/kernels/2.6.32-220.13.1.el6.centos.plus.x86_64 »
    make: *** [all] Erreur 2
    je pense que le défaut et qu'il ne peut pas touver ou lire les bibliothèques ( stdio.h / stdlib.h et le sendfile.h ) malgré qu'ils sont déja là

  10. #10
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    J'ai juste positionné les éléments à la bonne place mais je n'ai pas corrigé les erreurs.

    Déjà :
    /home/ahlem/bin/prgfile.c:7:21: erreur: stdlib.h : Aucun fichier ou dossier de ce type
    /home/ahlem/bin/prgfile.c:8:19: erreur: stdio.h : Aucun fichier ou dossier de ce type
    /home/ahlem/bin/prgfile.c:9:27: erreur: sys/sendfile.h : Aucun fichier ou dossier de ce type
    Le fait qu'il ne trouve pas les en-tête n'est pas normal, et cela va provoquer d'autres messages d'erreurs.

    /home/ahlem/bin/prgfile.c:15: attention : function declaration isn’t a prototype
    /home/ahlem/bin/prgfile.c:21: attention : function declaration isn’t a prototype
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void netlink_test(void);
    int main(void)
    {
    /home/ahlem/bin/prgfile.c:31: erreur: invalid storage class for function ‘__inittest’
    /home/ahlem/bin/prgfile.c: In function ‘__inittest’:
    /home/ahlem/bin/prgfile.c:31: erreur: ‘my_module_init’ undeclared (first use in this function)
    /home/ahlem/bin/prgfile.c:31: erreur: (Each undeclared identifier is reported only once
    /home/ahlem/bin/prgfile.c:31: erreur: for each function it appears in.)
    /home/ahlem/bin/prgfile.c: In function ‘main’:
    /home/ahlem/bin/prgfile.c:31: attention : ISO C89 interdit les mélanges de déclarations et de code
    /home/ahlem/bin/prgfile.c:31: attention : ‘alias’ attribute ignored
    /home/ahlem/bin/prgfile.c:32: erreur: invalid storage class for function ‘__exittest’
    /home/ahlem/bin/prgfile.c: In function ‘__exittest’:
    /home/ahlem/bin/prgfile.c:32: erreur: ‘my_module_exit’ undeclared (first use in this function)
    /home/ahlem/bin/prgfile.c: In function ‘main’:
    /home/ahlem/bin/prgfile.c:32: attention : ISO C89 interdit les mélanges de déclarations et de code
    /home/ahlem/bin/prgfile.c:32: attention : ‘alias’ attribute ignored
    /home/ahlem/bin/prgfile.c:32: erreur: expected statement before ‘]’ token
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           module_init(myModule);//il faut déclarer le module myModule
           module_exit(myModule);
    module_init et module_exit ne semblent pas être définis, peut être à cause du header non trouvé.


    /home/ahlem/bin/prgfile.c: Hors de toute fonction :
    /home/ahlem/bin/prgfile.c:55: attention : function declaration isn’t a prototype
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void netlink_test(void)
    {
    
    }

    /home/ahlem/bin/prgfile.c: In function ‘netlink_test’:
    /home/ahlem/bin/prgfile.c:56: erreur: ‘nl_sk’ undeclared (first use in this function)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void netlink_test(struct .... * nl_k)
    {
           nl_sk = netlink_kernel_create(&init_net, NETLINK_NITRO, 0, nl_data_ready, NULL, THIS_MODULE);
    }
    /home/ahlem/bin/prgfile.c: In function ‘sendfile’:
    /home/ahlem/bin/prgfile.c:62: erreur: ‘FILE’ undeclared (first use in this function)
    /home/ahlem/bin/prgfile.c:64: erreur: implicit declaration of function ‘fopen’
    /home/ahlem/bin/prgfile.c:66: attention : comparaison entre un pointeur et un entier
    /home/ahlem/bin/prgfile.c:69: erreur: implicit declaration of function ‘fclose’
    stdio.h n'est pas trouvé d'où les erreurs.

    /home/ahlem/bin/prgfile.c:70: erreur: expected expression before ‘?’ token
    Il ne suffit pas de copier coller le code. Il faut aussi comprendre ce que je fait. J'ai mis des '???' parce que je ne sais pas ce que ta fonction doit retourner en cas d'erreur : 0, -1, -2, 1, 2, 3 ???
    Iu devais remplacer les '???' par la bonne valeur.

    Je te conseille tout de même très fortement de lire un tutoriel sur le C avant de continuer de coder pour que tu comprennes ce que tu fais.

  11. #11
    Membre régulier Avatar de JulieCarree
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 50
    Points : 94
    Points
    94
    Par défaut
    bonsoir,
    suis-je la seule à avoir des lunettes mise à jour ?

    pourquoi y a t-il des espaces entre certains '#' et les includes ?
    "if it quacks like a duck then it's a duck"

  12. #12
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonsoir,

    Citation Envoyé par JulieCarree Voir le message
    suis-je la seule à avoir des lunettes mise à jour ?
    ???

    Citation Envoyé par JulieCarree Voir le message
    pourquoi y a t-il des espaces entre certains '#' et les includes ?
    Le '#' ne fait que signifier que c'est une ligne à interpréter par le préprocesseur (si je ne dit pas de bêtises), mettre un espace avant ou après n'a pas théoriquement pas d'importance.

  13. #13
    Membre régulier Avatar de JulieCarree
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 50
    Points : 94
    Points
    94
    Par défaut
    sorry .
    "if it quacks like a duck then it's a duck"

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/03/2014, 21h09
  2. Réponses: 9
    Dernier message: 19/03/2008, 08h37
  3. Probleme envoi/reception de fichiers par RS232
    Par zezitinho dans le forum C++
    Réponses: 2
    Dernier message: 10/10/2007, 10h34
  4. Comment coder un fichier par programmation ?
    Par DJERDJAR YACINE dans le forum Débuter
    Réponses: 3
    Dernier message: 19/08/2007, 10h06
  5. Réponses: 9
    Dernier message: 19/08/2004, 11h03

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