fclose() provoque une erreur de segmentation. J'ai:segfault pendant fclose()
char buffer[L_tmpnam];
char *pipeName = tmpnam(buffer);
FILE *pipeFD = fopen(pipeName, "w"); // open for writing
...
...
...
fclose(pipeFD);
Je ne fais pas de fichier choses liées à la ... mais si cela ne l'affecte pas. Toutefois, mon processus MAIN communique avec un autre processus via la mémoire partagée dans laquelle pipeName est stocké; l'autre processus fopen est ce tuyau pour la lecture à communiqué avec MAIN.
Des idées pour lesquelles cela provoque une erreur de segmentation?
Merci, Hristo
1. C'était un faux type. Je passe pipeFD à fclose(). 2. J'ai mis une vérification pour NULL, et il s'avère que c'est NULL. Comment cela fonctionne-t-il? Je pensais que fopen crée le fichier si ce nom de fichier n'existe pas? – Hristo
fopen échoue pour une raison quelconque. Qu'est-ce que perror()? – WhirlWind
@Hristo: Vous ne pouvez pas fermer si le fopen ne réussit pas. fopen échoue actuellement, vous devez vérifier l'erreur pour voir pourquoi. –