هل يجب أن أقوم بتضمين أي أو كل الرؤوس المدرجة في ملخص صفحة الدليل؟

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

  •  22-12-2019
  •  | 
  •  

سؤال

على سبيل المثال، خذ open(2)، الذي يحتوي على الملخص التالي:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);

هل يجب أن أقوم بتضمين جميع ملفات الرأس هذه أم أن أيًا منها جيد؟في الحالة الأولى، كيف أعرف أي ملفات الرأس تحتوي على الوظائف ووحدات الماكرو وtypedefs؟

هل كانت مفيدة؟

المحلول

يجب أن تشمل كل منهم.سوف تخبرك مواصفات posix بما هو في كل (على سبيل المثال، هذا هل مواصفات بوسيكس ل FCNTL.H)، أو على الأقل ما هو مضمون أن يكون في كل منها.

نصائح أخرى

يجب عليك تضمين كل ملفات الرأس هذه.من المفترض أن تدرج الرؤوس المذكورة في ملخصة.

afaik، يجب عليك تضمين جميع ملفات الرأس هذه.لماذا تحتاج إلى معرفة ملف الرأس الذي يحتوي على وحدات ماكرو أو وظائف أو typeDefs، إذا قمت في النهاية بتضمين كل منهم؟

فقط <fcntl.h> مطلوب.هناك صفحتان للرجل open. http://linux.die.net/man/2/open و http://linux.die.net/man/3/open.

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);

إذا كنت تستخدم الزائد مع mode_t, ، انت تحتاج <sys/types.h>.

#include <sys/stat.h>
#include <fcntl.h>

int open(const char *path, int oflag, ... );

بالنسبة للحمل الزائد الأخير، opengroup.org يعتبر <sys/stat.h> خياري.أيضًا، <sys/types.h> ليس مطلوبا سواء.

تمت إزالة متطلب تضمين <sys/types.h>.على الرغم من أنه مطلوب للتطبيقات المطابقة لمواصفات POSIX السابقة ، إلا أنه لم يكن مطلوبًا لتطبيقات UNIX.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top