2013-08-02 12 views
5

मैं सी द्वारा एक साधारण खोल को कोड करने की कोशिश कर रहा हूं लेकिन मैं sys/wait.h का उपयोग नहीं कर सकता। मेरे कोड एक ही है कि:त्रुटि: sys/wait.h: ऐसी कोई फ़ाइल या निर्देशिका

#include <stdio.h> 
#include <sys/types.h> 
#include <sys/wait.h> 
#include <unistd.h> 

int main(void) { 
    char command[BUFSIZ]; 
    int status; 
    pid_t pid; 

    for(;;) { 
     printf("simpsh: "); 
     if(fgets(command, sizeof(command), stdin) == NULL) { 
     printf("\n"); 
     return 0; 
    } 

    command[strlen(command) - 1] = '\0'; 
    if((pid = fork()) == 0) 
    execlp(command, command, 0); 

    while(wait(&status) != pid) 
    continue; 

    printf("\n"); 
    } 

}

मैं देव-सी ++ और परिणाम का उपयोग कर रहा है:

[Error] sys/wait.h: No such file or directory 

यहाँ क्या गलत? और अगर किसी के पास सी या सी ++ द्वारा सरल खोल बनाने के लिए मेरे लिए कुछ सुझाव हैं तो कृपया मुझे कुछ लिंक या कोड दें। धन्यवाद!

+3

अच्छा ... क्या आपके पास पथ में से किसी एक के sys नामक एक उपनिर्देशिका में wait.h नामक एक फ़ाइल है? – Vicky

+2

खिड़कियों के नीचे कोई 'कांटा() 'नहीं है, इसलिए कोई' प्रतीक्षा()' नहीं है। अधिक * IX संगत होने के लिए आप सिग्विन पर्यावरण का उपयोग करने के लिए स्विच करना पसंद कर सकते हैं, जो जीसीसी प्रदान करता है। कृपया यह उत्तर देखें: http://stackoverflow.com/a/7841250/694576 – alk

+0

क्षमा करें मैंने सोचा कि यह सी/सी ++ की लाइब्रेरी है? – Thangnv

उत्तर

4

http://sourceforge.net/p/dev-cpp/discussion/48211/thread/e32720b4 से

TextTiling/util.c:8:22: sys/wait.h: No such file or directory TextTiling/util.c:26:21: sys/vfs.h: No such file or directory

इन ओएस विशिष्ट फ़ाइलों रहे हैं, लेकिन विंडोज हेडर नहीं हैं। विंडोज पूरी तरह से POSIX एपीआई का समर्थन नहीं करता है। विंडोज़ पर संकलन और चलाने के लिए आपको शायद कोड के कुछ पोर्टिंग करना होगा।

आपके पास शायद इसके इच्छित वातावरण (लिनक्स या ओएसएक्स, या तो यूनिक्स जैसी पर्यावरण) में इसे और अधिक किस्मत का निर्माण होगा। आप इसे सिग्विन के तहत बनाने में सक्षम हो सकते हैं, लेकिन यह अखरोट के लिए एक स्लेजहैमर है।

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

एक अलग समस्या पर, कभी-कभी (और जाहिर तौर पर यादृच्छिक रूप से) विफल रहता है जब परियोजनाएं इसकी स्थापना निर्देशिका (सी: \ देव-सीपीपी) के उप-फ़ोल्डर में होती हैं।

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