Bonjour tout le monde,
J'ai un petit problème que je n'arrive pas à résoudre, l'environnement sur lequel je travaille est linux, le code est le suivant :
donc je veux lire la table arp, sous linux la table arp est formulé ainsi
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 int main() { FILE* fd = NULL; char buffer[256]; char c; fd =fopen("/proc/net/arp", "r"); if(!fd) { puts("error opening arp table"); return -1; } fgets(buffer,sizeof(buffer),fd);//skip the first line while((c = fgetc(fd)) != EOF) { fgets(buffer,sizeof(buffer),fd); //fread(buffer,sizeof(buffer),sizeof(buffer),fd); printf("buffer is %s\n",buffer); } return 0; }
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [sst@ubuntu sst]$ cat /proc/net/arp IP address HW type Flags HW address Mask Device 192.168.1.1 0x1 0x2 02:FC:EB:7C:4B:DD * eth1 192.168.5.1 0x1 0x2 00:08:A1:9E:52:A6 * eth2
mais le résultat de mon code est le suivant :
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 92.168.1.1 0x1 0x2 02:FC:EB:7C:4B:DD * eth1 92.168.5.1 0x1 0x2 00:08:A1:9E:52:A6 * eth
Le premier caractère de l'adresse IP ne s'affiche pas.
est-ce que quelqu'un pourrait m'éclaircir ce problème SVP.
Merci infiniment.
Partager