যখন তুমি কর
#define _XOPEN_SOURCE <some number>
বা
cc -D_XOPEN_SOURCE=<some number>
এটি আপনার সংকলকটিকে এক্স / ওপেন এবং পসিক্স মানগুলিতে সংজ্ঞায়িত কিছু অতিরিক্ত ফাংশনের সংজ্ঞা অন্তর্ভুক্ত করতে বলে tells
এটি আপনাকে কিছু অতিরিক্ত কার্যকারিতা দেবে যা সর্বাধিক সাম্প্রতিক ইউএনআইএক্স / বিএসডি / লিনাক্স সিস্টেমগুলিতে বিদ্যমান তবে সম্ভবত উইন্ডোজের মতো অন্যান্য সিস্টেমে উপস্থিত নেই।
সংখ্যাগুলি বিভিন্ন সংস্করণের উল্লেখ করে।
আপনি যে প্রতিটি কল করবেন তার জন্য ম্যান পৃষ্ঠাটি দেখে আপনার কোনটি প্রয়োজন (যদি থাকে তবে) বলতে পারেন।
উদাহরণস্বরূপ, man strdupবলেছেন:
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
strdup(): _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500
strndup(), strdupa(), strndupa(): _GNU_SOURCE
যার অর্থ হল যে আপনার এইগুলির মধ্যে একটি রাখা উচিত:
#define _SVID_SOURCE
#define _BSD_SOURCE
#define _XOPEN_SOURCE 500
#define _XOPEN_SOURCE 600
#define _XOPEN_SOURCE 700
আপনার উত্স ফাইলের শীর্ষে কোনও #includeব্যবহার করার আগে যদি আপনি ব্যবহার করতে চান তবে strdup।
অথবা আপনি রাখতে পারেন
#define _GNU_SOURCE
পরিবর্তে সেখানে, যা সোলারিস, ফ্রিবিএসডি, ম্যাক ওএস এক্স ইত্যাদিতে সংকলন না করে এমন দিকনির্দেশ সহ সমস্ত কার্যকারিতা সক্ষম করে
একটি #include, #defineবা একটি নতুন ফাংশন ব্যবহার করার আগে প্রতিটি পুরুষ পৃষ্ঠা পরীক্ষা করা ভাল ধারণা , কারণ কখনও কখনও আপনার বিকল্পগুলি এবং কীগুলির উপর নির্ভর করে তাদের আচরণ পরিবর্তন হয় #define, উদাহরণস্বরূপ বেসনামের সাথে (3) ।
আরো দেখুন: