Lorsque je compile le code suivant:problème de coulée avec fonction realpath (programmation c)
#define _POSIX_C_SOURCE 200112L
#define _ISOC99_SOURCE
#define __EXTENSIONS__
#include <stdio.h>
#include <limits.h>
#include <stdlib.h>
int
main(int argc, char *argv[])
{
char *symlinkpath = argv[1];
char actualpath [PATH_MAX];
char *ptr;
ptr = realpath(symlinkpath, actualpath);
printf("%s\n", ptr);
}
je reçois un message d'avertissement sur la ligne qui contient l'appel à la fonction realpath, en disant:
warning: assignment makes pointer from integer without a cast
Quelqu'un sait quoi de neuf? Je cours sous Ubuntu Linux 9.04
Merci! J'ai encore beaucoup à apprendre sur la programmation! – Ralph
En fait, vous devriez lire 'man feature_test_macros'. En outre, les pages de manuel pour 'realpath',' asprintf', etc. indiquent toutes les macros qui doivent être présentes pour leur déclaration. – ephemient
@ephemient: Les en-têtes sont la documentation lorsqu'il s'agit de modifier le comportement de la bibliothèque C standard. Appelez-moi paranoïaque, mais errata se produit dans les mises à jour de la documentation d'une version à l'autre. Parfois, les choses sont incorrectes, parfois les changements ne se glissent pas dans la documentation. Parfois, de nouveaux changements sont documentés de manière incorrecte. Je sais que l'étude de la glibc a été connue pour faire exploser les têtes, mais cela vaut le coup d'œil sur les en-têtes. Vous devez savoir ce que chaque macro _does_, ce qui est mieux obtenu via grep et d'autres moyens. –