इस एक कीवर्ड या सी के साथ फ़ाइलों को संभालने के लिए विशेष डेटा प्रकार है?
जो आप रेफरिंग कर रहे हैं वह एक टाइपेडफैड संरचना है जो मानक आईओ लाइब्रेरी द्वारा उपयोग किया जाता है ताकि फॉपेन और उसके परिवार के कार्यों के लिए उचित डेटा हो सके।
इसे पॉइंटर के रूप में क्यों परिभाषित किया जाता है?
एक संरचना के सूचक के साथ, आप इसे किसी फ़ंक्शन के पैरामीटर के रूप में पास कर सकते हैं। उदाहरण के लिए यह function(FILE* fp)
के रूप में fgets या fgetc स्वीकार करेगा, fopen फ़ंक्शन एक नए बनाए गए फ़ाइल संरचना में एक सूचक वापस करेगा, इस अप्रयुक्त व्यक्ति को यह नया सूचक निर्दिष्ट करने से उन्हें एक ही संकेत मिलेगा चीज़।
क्या इसमें फ़ाइल के भीतर और अन्य डेटा में एक स्ट्रीम है?
संरचना परिभाषा इसके विवरण से थोड़ा अधिक भ्रमित प्रतीत होता है। यह सीधे, मेरे stdio.h से लिया जाता है MinGW32 5.1.4
typedef struct _iobuf
{
char* _ptr;
int _cnt;
char* _base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char* _tmpfname;
} FILE;
कौन सा यह पहले सुंदर टिप्पणी भी शामिल है से:
कुछ का मानना है कि उनके सही मन में कोई भी नहीं का उपयोग करना चाहिए इस संरचना के आंतरिक।
इस संरचना की सामग्री अन्य कार्यान्वयन पर काफी बदलाव करने लगती है, ग्लिब स्रोतों में आम तौर पर टिप्पणी का कुछ रूप होता है लेकिन इसके लिए उनकी संरचना बहुत सारे कोड के तहत चली जाती है।
उपर्युक्त चेतावनी पर ध्यान देना और चिंता न करें कि यह क्या करता है। :)
ध्यान दें कि ['! Feof (stream) 'हमेशा गलत है] (http://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong)। – pmg