2013-03-11 10 views
48

ऐसा कहा जाता है कि सी ++ में सी हेडर फ़ाइलों को शामिल करते समय, ".h" प्रत्यय को हटाया जाना चाहिए और फिर शुरुआत में "सी" जोड़ें। उदाहरण के लिए, #include <stdio.h> के बजाय। लेकिन जब मैं अपने कोड में sleep() का उपयोग करता हूं, #include <cunistd> काम नहीं करता है, लेकिन #include <unistd.h> काम करता है। <cunistd> क्यों नहीं?सी ++ - unistd.h शामिल करें: क्यों नहीं cunistd?

उत्तर

49

आपका एल्गोरिदम अधिकांश (सभी?) मानक सी हेडर के लिए सही है, लेकिन unistd.h मानक सी का हिस्सा नहीं है इसलिए बदले में मानक सी ++ में अन्य c... हेडर शामिल नहीं हैं।

20

क्योंकि unistd.h कभी भी सी भाषा का हिस्सा नहीं था। यह ऑपरेटिंग सिस्टम का हिस्सा है।

10

<unistd.h>, यूनिक्स मानक शीर्षलेख के लिए खड़ा है, नाम यह सब कहता है।

+2

... तो यही नाम है जो कहता है! –

+16

'unistd' बस" सार्वभौमिक मानक शीर्षलेख "के लिए खड़ा हो सकता है (मुझे एहसास है कि थोड़ा हास्यास्पद लगता है)। मुद्दा यह है कि उन्हें इसे 'unixstd.h' नाम दिया जाना चाहिए - केवल _one_ वर्ण जोड़कर तत्काल स्पष्टता। –

2

unistd.h मानक सी मानक सी ++ lib का हिस्सा अन्य सी शीर्षलेखों के साथ शामिल नहीं है।

संबंधित मुद्दे