2012-01-06 14 views
10

शामिल किया है, ठीक है, यह एक मूर्खतापूर्ण होना चाहिए। यहां नीचे सी में एक आसान नहीं हो सकता है। यह "नींद के लिए अनिर्धारित संदर्भ" कहकर संकलित नहीं हो सकता है। लेकिन मुझे लगता है मैं लिनक्स प्रोग्रामर के मैनुअल के अनुसार सभी सिस्टम हैडर मैं जरूरत है ..."नींद" के लिए अनिर्धारित संदर्भ लेकिन मैंने <unistd.h>

#include <stdio.h> 
#include <unistd.h> 
int main() 
{ 
    printf("Test starts.\n"); 
    sleep(1); 
    printf("Test ends.\n"); 

    return 1; 
} 
+3

"अपरिभाषित संदर्भ" लगता है जैसे यह किसी चीज़ की आवश्यकता से जुड़ा हुआ नहीं है। – Kevin

+1

ओएस/कंपाइलर? क्या टाइपो के साथ इससे कहीं अधिक कोड हो सकता है? यह जीसीसी 4.6.1 के साथ संकलित और लिंक। – JoeFish

+0

@MengfeiMurphy, आप किस कंपाइलर का उपयोग कर रहे हैं? आप इसे संकलित करने के लिए किस कमांड लाइन टाइप कर रहे हैं? हमें बताएं कि आप क्या कर सकते हैं। –

उत्तर

33

शामिल करके सो उपयोग कर सकते हैं शीर्ष पर इस प्रयास करें:

#ifdef __unix__ 
# include <unistd.h> 
#elif defined _WIN32 
# include <windows.h> 
#define sleep(x) Sleep(1000 * x) 
#endif 

इस कोड को आप दो अलग अलग का उपयोग करने की अनुमति देगा एक ही नाम के तहत कार्य करता है, जो काफी वही काम करता है। और यह विभिन्न प्लेटफार्मों के तहत संकलित करता है।

+0

अद्भुत! तुम सही हो! मैं win7 + 'WinGW' का उपयोग कर रहा हूं। यह पहली बार है जब मैं अभ्यास में पोर्टेबल मुद्दों के साथ मिलती हूं। क्या आपके पास कोई अन्य समान उदाहरण हैं? –

+0

वास्तव में यह मेरे दिमाग में नहीं आता है लेकिन आप इस तरह से बहुत सी चीजें कर सकते हैं। यह साफ और सरल है। – wazabit

+0

यह वास्तव में काम करता है, कोडब्लॉक्स में झंडे के साथ मेरे मुद्दों के अलावा, अब मैं विंडोज़ में लिनक्स सिस्टम पर बना कोड चला सकता हूं, इस हेडर – thinksinbinary

-2

में शामिल हैं, आप सभी की जरूरत नींद काम करने के लिए प्राप्त करने के लिए unistd.h है। जांचें कि क्या आपके पास पथों को सही तरीके से स्थापित किया गया है या नहीं। Btw अपने विंडोज़ जो इसे पसंद यू का उपयोग कर रहे नहीं लगती है का उपयोग करते हुए, तो आप windows.h

2

यदि आप विंडोज ऑपरेटिंग सिस्टम के तहत चल रहे हैं, तो अपने प्रोग्राम में windows.h हेडर फ़ाइल शामिल करें और sleep() से Sleep() बदलें।

समस्या गायब हो जाएगी।

मुझे उम्मीद है कि इससे मदद मिलती है।

+0

विंडोज़ 'स्लीप()' फ़ंक्शन मिलीसेकंड में है, जबकि * निक्स 'नींद() 'सेकंड में है। 'नींद()' के बराबर बराबर 'नींद()' है। 'नींद() 'पोर्टेबल का उपयोग करने वाले कोड बनाने के सही तरीके के लिए Wazabit का उत्तर देखें। –

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