Bonsoir les noctambules, j'ai une erreur que je n'arrive pas à lever. Mon code ouvre un fichier sur une clé USB, et permet un tranfert de données dans celui-ci:

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
 
#include <stdio.h>
 
#include <stdlib.h>
 
#include <linux/usbdevice_fs.h>
#include <fcntl.h>
 
#include <linux/usb.h>
#include <sys/ioctl.h>
 
int main(void){
int fd;
 
fd = open("/proc/bus/usb/004/004/test.txt", O_RDWR);
 
if(fd != -1) {
   int ret;
   struct usbdevfs_bulktransfer bulk;
 
 
   bulk.ep = USB_DIR_IN | 1;
   bulk.len = 1024;
   bulk.timeout = 1000;
   bulk.data = malloc(1024);
 
   ret = ioctl(fd, USBDEVFS_BULK, &bulk);
 
   if (ret < 0){
      printf("Error in bulk transfer");}
   else {
      /* les données sont disponibles dans bulk.data */
   }
   close(fd);
}
}
Le problème, c'est qu'au moment de la compilation, apparait cette erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
In file included from /usr/include/linux/usb.h:4,
                 from ./pip.c:5:
/usr/include/linux/mod_devicetable.h:289: error: ‘BITS_PER_LONG’ undeclared here (not in a function)
Quelqu'un peut il m'aiguiller sur la raison de cette erreur?