F_SETPIPE_SZ non déclaré

J’ai inclus les en-têtes suivants:

#include  #include  #include  #include  #include  #include  #include  #include  

J’ai aussi essayé d’utiliser

 #define _GNU_SOURCE 

avant #include , mais cela n’aide pas non plus.

J’essaie d’utiliser fcntl et de le transmettre comme second argument, F_SETPIPE_SZ , mais je continue à recevoir ce message d’erreur:

erreur: ‘F_SETPIPE_SZ’ non déclaré (première utilisation dans cette fonction)

J’ai en fait découvert que je n’en avais pas besoin, mais je me demandais simplement pourquoi je ne pouvais pas l’utiliser.

Je vous remercie.

Alors voici la solution, grâce à Chrono Kitsune: Mettez

  #define _GNU_SOURCE 

avant tout comprend.

Alors voici la solution , grâce à Chrono Kitsune :

Mettre

 #define _GNU_SOURCE 

avant tout comprend.

Vous devriez également faire attention à l’autre commentaire de Chrono Kitsune.

F_SETPIPE_SZ / F_GETPIPE_SZ sont relativement récents. Les kernelx plus anciens (par exemple 2.6.32, tels qu’ils sont utilisés dans RHEL6) ne les ont pas. Si vous regardez dans /usr/include/linux/fcntl.h et que ces constantes ne sont pas définies, alors cette API ne fonctionnera pas et vous devrez trouver un moyen de la contourner dans tout ce que vous construisez.