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 :

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;
}
donc je veux lire la table arp, sous linux la table arp est formulé ainsi
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.