सी लैंग्वेज सीखने की सीरीज में आज हम देख रहे हैं हमारा लेक्चर 26 जिसमें हम देखेंगे फाइल ओपनिंग मोड्स इन सी लैंग्वेज इससे पहले के हमने कुछ वीडियोस में देखा था कि फाइल हैंडलिंग कैसे की जाती है सी लैंग्वेज में इसके बेसिक दो-तीन वीडियोस मैं इसके पहले बना चुका हूं जिसमें फाइल हैंडलिंग क्या है यह भी बताया है और फाइल में डाटा राइट कैसे करते हैं यह भी बेसिक आपको बताया हुआ है इसलिए अगर आपने नहीं देखे हो तो उन वीडियोस को पहले जरूर देख लीजिएगा आज हम लोगों को डिस्कस करना है ओपनिंग मोड्स के बारे में इसके लिए आपको एफ ओपन फंक्शन के सिंटेक्स को जानना जरूरी है एक बार मैं आपको रिकॉल करा देता हूं कि हम कोडिंग किस तरीके से करते हैं फाइल हेलिंग की यह देखिए मैंने एक फाइल बनाई हुई है टेस्ट वड सी जस्ट इसमें हम कोडिंग पर फोकस करेंगे हम सबसे पहले तो एक हेडर फाइल इंक्लूड करते हैं एसटीडी ए यह हेडर फाइल बेसिकली फाइल हैंडलिंग से रिलेटेड कई सारे ऑपरेशन करने के लिए जो फंक्शन बने हुए प्री डिफाइंड फंक्शन है उनके डिक्लेरेशन कंटेन करती है ओके अब हम बना रहे हैं मेन फंक्शन और मेन फंक्शन के अंदर हमें बनाना पड़ता है फाइल टाइप का एक पॉइंटर तो पिछले वीडियोस अगर आपने देखे तो आपको मालूम है व्हाट इज फाइल फाइल एक डेटा टाइप है ये कैपिटल लेटर में लिखा जाएगा यह डेटा टाइप है पर जैसे इंट कैर फ्लोट डेटा टाइप है ये उसकी तरह नहीं है ये नॉन प्रिमिटिव डेटा टाइप है ये नॉन प्रिमिटिव डेटा टाइप हम कैसे बनाते स्ट्रक्चर की मदद से तो फाइल एक स्ट्रक्चर की मदद से बनाया गया डाटा टाइप है हमारे लिए भले ही यह प्री डिफाइंड की तरह है लेकिन इसका जो डिक्लेरेशन है यह एटीडी ड एच हेडर फाइल के अंदर मौजूद है तो आप चाहे तो एसटीडी ड ए फाइल को पढ़ सकते हैं और उसके अंदर यह फाइल डाटा टाइप आपको मिलेगा मैंने इसका पॉइंटर क्यों बनाया इसको समझने के लिए एक बार हम थोड़ा डायग्राम से अपने कांसेप्ट को रिवाइज करते हैं जब भी कोई प्रोग्राम रन होता है सबसे पहले व रम में आता है यह आप आपको बात याद होगी तो मान लेते हैं यह पोर्शन हमारे रम का है ठीक है दिस इज रम इसके अलावा हमारा प्रोग्राम वैसे कहां रिसाइट करता है हार्ड डिस्क में तो लेट्स से ये है हार्ड डिस्क ठीक है अब ये हार्ड डिस्क के अंदर हमारा प्रोग्राम रखा होगा तो जैसे ही हमने इसको रन किया वैसे ही यह रम में आ गया रम में जब प्रोग्राम आता है तो उसको जो मेमोरी मिली है उसी के अंदर वेरिएबल बनेंगे तो हमने अपने प्रोग्राम में जो भी वेरिएबल बनाए होंगे वो इसके अंदर बनेंगे तो अभी मैंने आपसे कहा कि हम फाइल पॉइंटर बना रहे हैं एक वेरिएबल हमने बनाया है एप नाम का पर यह टाइप क्या है फाइल टाइप का पॉइंटर और आप जानते हैं पॉइंटर का साइज तो फिक्स होता है है ना अगर हम डॉस बे सी की बात करें 16 बिट के सी की बात करें तो पॉइंटर 2 बाइट का होगा नहीं तो 32 बिट या 64 बिट में पॉइंटर का साइज फर बाइट का होता है तो ये फर बाइट का एक वेरिएबल होगा अब पॉइंटर आपने बनाया है लेकिन पॉइंटर किसी को पॉइंट करेगा ना पॉइंटर में तो किसी का एड्रेस होना चाहिए तो जब मैं फाइल को ओपन करूंगा कौन सी फाइल हार्ड डिस्क में एक और फाइल है जिसके अंदर मुझे डाटा रखना है या जिसके अंदर के डाटा को मुझे रीड करना है तो यह कोई फाइल है इस फाइल को मुझे क्या करना पड़ता है ओपन ओपन करने का मतलब क्या है इसकी एक कॉपी आ जानी चाहिए रम में ठीक है इसकी कॉपी रम में आ जाएगी तो यह आ गई कॉपी इसकी रम में और यह फाइल पॉइंटर एक स्ट्रक्चर को एक वेरिएबल को डिनोट करता है पॉइंट करेगा एक ऐसा वेरिएबल देखिएगा इस वेरिएबल को जरा खास तौर पर समझिए इस वेरिएबल के अंदर कई सारे वेरिएबल क्यों कई सारे वेरिएबल कैसे हो सकते हैं तो आप जानते हैं स्ट्रक्चर जब हम बनाते हैं तो उसके अंदर कई सारे वेरिएबल होते हैं तो यह फाइल टाइप का वेरिएबल यह क्या है यह पॉइंटर है हमने क्या बनाया है पॉइंटर बनाया यह हमने नहीं बनाया यह वेरिएबल है एक्चुअल में तो यह कब बना यह बनेगा जब हम एफ ओपन फंक्शन कॉल करेंगे तो देखिए जब हम कोडिंग के अंदर लिखेंगे ए ओपन ठीक है तो यह फंक्शन है जिसमें दो आर्गुमेंट पास किए जाते हैं पहला आर्गुमेंट क्या होता है फाइल का नाम जैसे मैंने लिखा माय फाइल डडी ये फाइल का नाम हो गया और दूसरा आर्गुमेंट होता है फाइल का मोड अब फाइल का मोड क्या हो सकता है वह मैं अभी आपसे डिस्कस करूंगा लेकिन अभी मैंने एक मोड लिख दिया है दैट इज आर वो भी एक स्ट्रिंग है यानी दोनों ही स्ट्रिंग हम पास कर रहे हैं इसमें यह फंक्शन जो रिटर्न करेगा वह किसम असाइन करवा लेते हैं एप के अंदर अब समझिए व्हाट इज एप एप हमने एक पॉइंटर बनाया था उसके अंदर क्या आने वाला है एड्रेस कौन सा एड्रेस जो एफ ओपन फंक्शन करेगा रिटर्न ठीक है तो एफ ओपन फंक्शन ने जो रिटर्न किया है वो एड्रेस किसका है समझ में आया अभी आपको इस वेरिएबल का है यह वेरिएबल किस टाइप का है फाइल टाइप का अरे भाई पॉइंटर जिस टाइप का होता है उसी टाइप के वेरिएबल का एड्रेस कंटेन करता है यदि पॉइंटर फ्लोट टाइप का होगा तो फ्लोट टाइप के वेरिएबल का एड्रेस कंटेन करेगा पॉइंटर अगर इंट टाइप का होगा तो इंट टाइप के वेरिएबल का एड्रेस कंटेन करेगा तो अगर पॉइंटर फाइल टाइप का है तो फाइल टाइप के ही एक वेरिएबल का एड्रेस कंटेन करेगा अब फाइल टाइप के किसी वेरिएबल में बहुत सारे वेरिएबल होते हैं जिसमें से एक वेरिएबल एक पॉइंटर भी होता है जो कि पॉइंट करता है फाइल को फाइल की एक कॉपी जो रम में आई है उसको पॉइंट कर रहा है यह है फाइल जिसमें लिखा हुआ है डाटा तो इस फाइल को एक्सेस करने के लिए इस पॉइंटर की जरूरत पड़ेगी और यह पॉइंटर बहुत सारे दूसरे वेरिएबल के साथ इस स्ट्रक्चर के अंदर है जिसको पॉइंट कर रहा है तो मैं इनडायरेक्ट वे में इस फाइल तक पहुंच सकता हूं ठीक है आपको एफपी के थ्रू इसके अंदर की चीजों को एक्सेस करने की डायरेक्टली कोई जरूरत नहीं पड़ेगी क्योंकि यह सब काम करने के लिए प्री डिफाइंड फंक्शंस मौजूद है आपको तो सिर्फ ये डायग्राम से कांसेप्ट को समझना है कि एफपी का रोल क्या है बीच में यह स्ट्रक्चर है और फिर फाइल है ठीक है आप इसको अगर समझने में दिक्कत होती तो आप इसको रिपीटेडली दो-तीन बार सुनिए तो आपको धीरे-धीरे समझ में आ जाएंगी बातें एनीवे हम क्या क्या समझना है कि फाइल ओपनिंग मोड्स क्या होते हैं देखिए ओपनिंग मोड हम कुछ भी लिखें फाइल इसी तरीके से ओपन होती है इसी तरीके से पॉइंट होती है तो फर्क कहां पर आता है फर्क आता है मोड लिखकर आप यह बताते हैं कि आपने फाइल को किस इंटेंशन से ओपन किया है इंटेंशन से मतलब तो देखिए मोड हम क्या-क्या लिख सकते थे ये सिक्स पॉसिबिलिटीज हमारे पास होती हैं या तो हम लिखें r जैसा कि अभी मैंने एग्जांपल में आर लिखा हुआ है ठीक है एग्जांपल देखिए यहां पर मैंने आर लिखा है यहां पे क्या लिख सकता हूं और आर लिखो या r प्लस लिखो या फिर या फिर लिखो डब् ऐसे या फिर लिखो ड प् या फिर a लिखो या ए प्लस लिखो छह पॉसिबिलिटीज हो गई आपके पास तो देखिए हमारे पास ये छह पॉसिबिलिटीज है और आप चाहे तो स्क्रीन को पॉज करके आप पूरे कंटेंट को रीड कर सकते हैं मैं आपको पूरा ओवरव्यू एक बार में देता हूं यदि मैं किसी फाइल को ओपन करते वक्त मोड लिखता हूं आर तो इसका मतलब है मैं उसमें रीडिंग करना चाहता हूं अब मैं उस फाइल पर केवल रीडिंग का ही ऑपरेशन परफॉर्म कर सकता हूं और कोई ऑपरेशन परफॉर्म नहीं कर सकता यानी मैं राइटिंग नहीं कर सकता अच्छा अगर मान लीजिए मैंने किसी फाइल को ओपन करना चाहा और यहां पर मैंने लिखा हुआ है आर मोड यानी रीड मोड तो यह फाइल एसिस्ट नहीं करती होगी तो एफ के अंदर क्या चला जाएगा नल यानी यदि मैं चेक करूं कि एफ प की वैल्यू नल है क्या तो इसका मतलब क्या है इसका मतलब है फाइल ओपन नहीं हो पाई क्योंकि फाइल एजिस्ट नहीं करती तो हम चाहे तो एक मैसेज भी प्रिंट करा सकते हैं फाइल नॉट फाउंड फाइल नॉट फाउंड राइट तो इस तरीके से मैसेज प्रि करा सकते हैं लेकिन याद रखिएगा अगर वह रीड मोड में आर मोड में तभी ऐसा होगा और किसी मोड में ऐसा नहीं होता फाइल अगर एजिस्ट नहीं करती है फाइल अगर एजिस्ट नहीं करती तो नहीं बनेगी हां अगर आर की जगह आर प्स लिखा हो तो तो भी फाइल अगर एजिस्ट नहीं करती है तो नई फाइल नहीं बनेगी ठीक है यानी आर या आर प्लस लिखा होगा तो मेन इंटेंशन हमारा क्या है रीडिंग करना फाइल को रीड करना और अगर फाइल एजिस्ट ही नहीं करती तो उसको रीड कैसे करोगे तो आर या आर प्लस मोड में फाइल अगर एजिस्ट नहीं करती है तो नई फाइल नहीं बनेगी बल्कि नल रिटर्न होगा पर अगर आपने डब्लू मोड को लिखा होता या आर आर प्लस को छोड़ दें और कोई भी मोड लिखा होता आर छोड़ दीजिए और आर प्लस छोड़ दीजिए बाकी कोई भी मोड लिखा होगा अगर फाइल एजिस्ट नहीं करती है तो भी नई फाइल भले वो एमटी रहेगी और वो ओपन हो जाएगी क्योंकि आपका इंटेंशन तब रीडिंग अकेला करना नहीं है आपका इंटेंशन राइटिंग करना हो तो राइटिंग अगर पहली बार भी कर रहे हो तो फाइल तो चाहिए ना लेकिन रीडिंग अगर पहली बार कर रहे हो तो फाइल के अंदर डेटा होना ही चाहिए तब तो आप उसको रीड करोगे तो हमने समझा आर मोड जिसका मतलब ओनली रीडिंग फाइल अगर एजिस्ट नहीं करती है तो नई फाइल क्रिएट नहीं होगी नल रिट होगा और इसका मतलब इसको बहुत ध्यान से समझिए क्योंकि इसमें थोड़ा सा कंफ्यूजन होता है स्टूडेंट्स को पहली बात तो यह कि डब्लू मोड में अगर आपने ओपन किया है तो केवल आप राइटिंग कर पाएंगे रीडिंग नहीं कर पाएंगे दूसरी बात यह कि अगर यह फाइल एजिस्ट नहीं करती है तो नई फाइल क्रिएट हो जाएगी एमटी फाइल लेकिन अब ध्यान से सुनिए अगर फाइल पहले से एजिस्ट करती है आपने यहां पर क्या लिखा डब् और इस नाम की फाइल पहले से एजिस्ट करती है तो फाइल का पुराना कंटेंट पूरा इरेज हो जाएगा और फाइल एक एमटी फाइल के रूप में ओपन होगी ताकि आप जो भी आप राइट करेंगे वह नए सिरे से राइटिंग होगी पुराना कुछ भी उसमें नहीं रहेगा ठीक है कई जगह पर लिखा रहता है ओवरराइट तो देखिए उससे कंफ्यूजन होता है ओवरराइट का मतलब हम लोग यह सोचते हैं कि कुछ पोर्शन शायद चेंज होगा पूरा पोर्शन चेंज नहीं होगा लेकिन मैं आपको बताऊं डब् मोड में जब भी ओपन करते हैं तो पुराना पूरा का पूरा कंटेंट अरेज हो जाता है भले ही आप अब उसमें सिर्फ एक लाइन लिखना चाह रहे हैं जबकि फाइल में पहले 10 लाइन थी वो 10 की 10 लाइन इरेज हो चुकी है तो डब्लू मोड में तभी ओपन करिए जब आप यह अच्छे तरीके से जानते हैं कि आपको पुराने कंटेंट की जरूरत नहीं है उसको इरेज करना ही है लेकिन अगर आप चाहते हैं नहीं पुराना कंटेंट भी एजिस्ट करें और नया कंटेंट उसके आगे से जुड़ जाए जैसे मान लीजिए एक फाइल के अंदर 10 स्टूडेंट्स की इंफॉर्मेशन रखी है अब मुझे 11वें स्टूडेंट की इंफॉर्मेशन रखनी है तो मैं ये नहीं चाहता कि 10 स्टूडेंट की इंफॉर्मेशन डिलीट हो जाए तो इसके लिए मैं कहता हूं मोड ए ए मोड में मैं रीडिंग नहीं कर सकता सिर्फ राइटिंग कर सकता हूं और राइटिंग भी जो होगी वो पुराना कंटेंट इरेज नहीं होगा बल्कि फाइल के एंड में नया कंटेंट राइट होगा और यह ज्यादातर यूज में आता है तो फाइल का मोड देखिए कितना इंपॉर्टेंट है अगर आपने ए लिखना था और ड लिख दिया तो कितनी इतनी बड़ी गलती करती अच्छा और अगर आपने लिखा r प्लस तो आपका मेन इंटेंशन तो रीडिंग है पर आप रीडिंग राइटिंग दोनों कर सकते हैं देखिए बात समझिए जितने भी मोड में प्लस लगा है ना r+ w+ a+ इन सब में रीडिंग और राइटिंग दोनों होती है लेकिन r प्लस का मतलब हुआ मेन इंटेंशन उनका रीडिंग है तो अगर फाइल एजिस्ट नहीं करती है तो नई फाइल क्रिएट नहीं होगी नल रिटर्न होगा और फाइल अगर एजिस्ट करती है तो फाइल ओपन होगी अब आप रीडिंग भी कर सकते हैं राइटिंग भी कर सकते हैं ठीक है अच्छा यह खास तौर पर तब यूज किया जाता है जब मुझे फाइल में मॉडिफिकेशन करने हो ध्यान से सुनिए अगर फाइल के कंटेंट को अपडेट करना है फॉर एग्जांपल एक फाइल में 10 बुक्स के रिकॉर्ड रखे हुए हैं और मुझे पांचवी बुक के रिकॉर्ड में कुछ चेंजेज करना है तो मुझे आर प्लस मोड में ओपन करना है यानी फाइल के कंटेंट को बिटवीन कहीं से भी अपडेट करना है देखिए नया कंटेंट जोड़ना एक अलग बात होती है मैं कह रहा हूं अपडेट करना है पुराना कंटेंट चेंज करना है ओवरराइट करना है तो मैं r+ मोड में ओपन करूंगा तो मॉडिफाई करने के लिए सिर्फ इन छह में से यही मोड है जो यूज होता है तो मॉडिफाई करेंगे तो r+ मोड ही ओपन करेंगे फिर हम देखते हैं w+ मोड w+ मोड में भी रीडिंग और राइटिंग दोनों होती है पर मे इंटेंशन राइटिंग है तो अगर पहले से एजिस्ट नहीं करती है फाइल तो भी यह नई फाइल बना के ओपन कर देगा हां लेकिन यह पुराने कंटेंट को इरेज कर देता है और सब कुछ नए सिरे से राइटिंग होती है तो यह बात इसकी ध्यान रखने वाली है अगर आप ए प्लस मोड में लिखते हैं तो इसमें भी रीडिंग राइटिंग दोनों होती है पर इसका मेन इंटेंशन अपेंड करना है अपेंड करने का मतलब है आगे जोड़ना है पुराने कंटेंट को इरेज नहीं करेगा फाइल अगर पहले से एजिस्ट नहीं करती है तो यह नई फाइल क्रिएट कर देगा और उसके बाद उसमें हम राइटिंग कर सकते हैं इसमें राइटिंग रीडिंग दोनों हो रही है तो यह है फाइल ओपनिंग मोड्स अभी हमारा आज के लेक्चर में यही पर्पस था कि हम फाइल ओपनिंग मोड्स को समझ लें आप अच्छे से इस पे ध्यान दीजिए खास तौर पे ये डब् मोड और यह r प्लस मोड इन पे जरा ज्यादा ध्यान दीजिएगा और एक बार यह आपको समझ में आ गया तो अब आगे की वीडियोस में हम लोग बहुत सारे फाइल हैंडलिंग रिलेटेड प्रोग्राम्स देखेंगे बहुत सारे फंक्शंस देखेंगे जो फाइल हैंडलिंग में काम आने वाले हैं तो डेफिनेटली काफी यूजफुल वीडियोस आने वाले हैं यदि आपको लगता है कि वो सारे वीडियोस की जानकारी आपको मिलती रहे तो आप इस चैनल को जरूर सब्सक्राइब करिए इस वीडियो को भी लाइक करिए यदि आपको पसंद आया है कमेंट के जरिए आप अपनी बात मुझ तक पहुंचा सकते हैं कोई भी शिकायत सुझाव जो भी आपको कहना हो वह कमेंट के जरिए आप मुझसे कह सकते हैं आप मेरी वेबसाइट को विजिट कर सकते हैं www.mysirg.com इस वेबसाइट प आपको मेरे सभी चैनल्स के लिंक मिलेंगे उन चैनल्स पे जितने वीडियोस रखे हैं उसकी जानकारी भी मिलेगी सी c+ प जावा पीएचपी डाटा स्ट्रक्चर डीबीएमएस यह सब उसमें मिलेंगे इसके अलावा आपको अगर प्रोग्रामिंग डेवलप करनी है तो उसके लिए एक्सरसाइज भी आपको मिलेंगे और सभी के वीडियो सॉल्यूशंस भी मिलेंगे इसके अलावा अगर आप कैंपस प्रिपरेशन कर रहे हैं तो उसके उससे रिलेटेड कंटेंट भी आपको वीडियो लेक्चर के फॉर्म में मिलेगा इसी साइट में मैं डेली वीडियोस अपलोड करता हूं कौन से वीडियोस अपलोड करने वाला हूं इसकी जानकारी और कौन से वीडियोस अभी अपलोड किए हैं रिसेंटली उसकी जानकारी भी आपको इस चैनल पे इस साइट पे मिलती रहती है तो आप इस साइट को जरूर विजिट करिए और इसको अपने बुक मार्क कर लीजिए और यदि आपको लगे कि यह सब कुछ बड़ा ही यूज़फुल है तो आप अपने facebook's हैं यह हिंदी में है और फ्री ऑफ कॉस्ट है तो अगर आपके किसी काम आ रहे हैं तो यह बहुत लोगों के बहुत काम के हो सकते हैं तो हमारा जो एक मकसद है मैं जो एक बहुत ही नेक ख्याल से यह सारी चीजें कर रहा हूं मैं यह चाहता हूं कि हर एक व्यक्ति जो पढ़ना चाहता है लेकिन सिर्फ प्रॉपर कम्युनिकेशन के गैप से शायद इंग्लिश की वजह से वह चीजों को उतने बेहतर तरीके से नहीं समझ पा रहा है जिसका नतीजा यह होता है कि उसका कॉन्फिडेंस लो हो जाता है और उसे सबके बीच में लगता है कि वह खुद कर नहीं सकता है इसमें आगे अपना करियर बना नहीं सकता तो वह कहीं कॉम्प्रोमाइज करता है अपनी लाइफ में और जो उसकी कैपेबिलिटी है वो कहीं दब के रह जाती है तो हम यह चाहते हैं कि सभी को पूरा मौका मिले आगे बढ़ने का मौका मिले और यह कंट्रीब्यूशन हम कर सकते हैं तो यह एक नेक ख्याल है और मैं चाहता हूं कि यदि आपको सब कुछ बहुत पसंद आ रहा है तो आप प्लीज इतनी हेल्प मेरी भी करिए कि आप इसको जितना हो सके उसको स्प्रेड करिए आप आप इसको अपने