2012-05-14 13 views
6

ऐसी चीज है जो मुझे सी प्रोग्रामिंग में सिरदर्द देती है जब मैं फ़ाइलों से पढ़ने के साथ सौदा करता हूं।सी में पढ़ने के लिए फ़ाइल कैसे खोलें?

FILE *fd; 
fd=fopen(name,"r"); // "r" for reading from file, "w" for writing to file 
         //"a" to edit the file 

fd, NULL भेजता है, तो फ़ाइल खुला नहीं किया जा सकता सही:

मैं इन 2 विधियों के बीच अंतर समझ में नहीं आता?

दूसरी विधि है कि मैं का उपयोग करें:

int fd; 
fd=open(name,O_RDONLY); 

fd होगा -1 फ़ाइल खोलने पर एक त्रुटि होती है तो।

क्या कोई मुझे यह बताने के लिए पर्याप्त दयालु होगा? अग्रिम धन्यवाद :)

उत्तर

10

फॉपेन() का उपयोग करके आप सी stdio लाइब्रेरी का उपयोग करने की अनुमति देता है, जो फ़ाइल डिस्क्रिप्टर के साथ सीधे काम करने से कहीं अधिक सुविधाजनक हो सकता है। उदाहरण के लिए, फाइल डिस्क्रिप्टर के साथ fprintf (...) के बराबर कोई अंतर्निहित नहीं है।

जब तक आपको निम्न स्तर I/O करने की आवश्यकता नहीं होती है, तब तक stdio फ़ंक्शंस अनुप्रयोगों के विशाल बहुमत को बहुत अच्छी तरह से सेवा प्रदान करता है। यह अधिक सुविधाजनक है, और, सामान्य मामलों में, सही ढंग से उपयोग किए जाने पर तेज़।

+1

तो मुझे उस व्यक्ति का उपयोग करना चाहिए जिसके साथ मैं अधिक आरामदायक हूं, है ना? fopen() यह तब है। – appoll

+2

मुझे लगता है कि यह जाने का एक अच्छा तरीका होगा। और हाँ, यह त्रुटि पर शून्य लौटाता है। यदि यह विफल हो जाता है, तो आप यह जानने के लिए इरनो की जांच कर सकते हैं क्यों। –

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