fileno، F_LOCK وF_ULOCK تصبح غير معلنة وغير متوفرة عندما أضيف الأمراض المنقولة جنسيا = C99 العلم لدول مجلس التعاون الخليجي

StackOverflow https://stackoverflow.com/questions/1423185

  •  07-07-2019
  •  | 
  •  
هل كانت مفيدة؟

المحلول

وتحتاج إلى معرفة الرؤوس التي تريد ملحقات POSIX. في هذه الأيام، وأنا استخدم:

#if __STDC_VERSION__ >= 199901L
#define _XOPEN_SOURCE 600
#else
#define _XOPEN_SOURCE 500
#endif /* __STDC_VERSION__ */

إذا أنا ترجمة مع -std=c89، وأنه يعطي نسخة POSIX الصحيح. إذا كنت ترجمة مع -std=c89، وأنه يعطي نسخة POSIX الصحيح. أنا استخدم هذا على سولاريس 9 و 10، وماك X (10.4.x، 10.5.x)، HP-UX 11.X، لينكس (RHEL4 و5، سوزي 9 و 10) وAIX 5.x و 6.X - AFAICR دون مشاكل حتى الآن.

ويجب أن يظهر هذا المقطع الشعري قبل أن يتم تضمين أي رؤوس النظام (في رأس الخاص بك، أو في كل ملف المصدر)، أو تحتاج إلى تحقيق نفس التأثير مع -D_XOPEN_SOURCE=600 على سطر الأوامر المترجم، أو أي آلية أخرى مماثلة.

نصائح أخرى

وحاول

-std=gnu99

ولتمكين جميع ملحقات والاستمرار في استخدام تحسينات اللغة C99.

وكنت قد تحاول -D_BSD_SOURCE لتمكين BSD-المذهبين أو -D_SVID_SOURCE لتمكين المذهبين النظام-V

scroll top