C . में Fstat फंक्शन

C Mem Fstat Phanksana



fstat() फ़ंक्शन सिस्टम को उस फ़ाइल के डिस्क्रिप्टर पर निर्भर जानकारी (कुछ फ़ाइल के संबंध में) वापस करने के लिए कॉल करता है। यह फ़ंक्शन फ़ाइल के लिए जानकारी प्राप्त करता है जो फ़ाइल डिस्क्रिप्टर से जुड़ा होता है जिसे 'फिल्ड्स' के रूप में भी जाना जाता है और फिर इस जानकारी को उस मेमोरी लोकेशन में लिखता है जहां बफर इंगित कर रहा है। इस फ़ंक्शन का रिटर्न प्रकार एक पूर्णांक है। यदि प्रोग्राम सफलतापूर्वक निष्पादित होता है तो यह '0' मान देता है। अन्यथा, यह विफल निष्पादन के मामले में फ़ंक्शन के लिए '-1' लौटाता है। इस फ़ंक्शन के लिए निष्पादन त्रुटि कुछ विशिष्ट कारणों से हो सकती है जैसे कि फ़ंक्शन के फ़िल्ड में फ़ाइल के लिए एक अमान्य डिस्क्रिप्टर है, यदि फ़ाइल से इनपुट और आउटपुट के लिए रीडिंग त्रुटि होती है, और यदि मेमोरी लोकेशन (स्ट्रक्चर) जहां बफ़र फ़ाइल जानकारी लिखने के लिए इंगित कर रहा है कि फ़ाइल आकार के लिए पर्याप्त आवंटित स्मृति नहीं है।

प्रक्रिया

यह आलेख फ़ाइल जानकारी प्राप्त करने के लिए fstat () फ़ंक्शन को लागू करने के अनुक्रमिक क्रम का पालन करता है। हम पहले इस फ़ंक्शन के लिए सिंटैक्स सीखते हैं, इस फ़ंक्शन के लिए आवश्यक पैरामीटर। फिर, हम इस सिंटैक्स का उपयोग fstat () फ़ंक्शन के लिए कुछ उदाहरण निष्पादित करने के लिए करते हैं।







वाक्य - विन्यास

फ़ाइल जानकारी तक प्रोग्राम की पहुँच को सक्षम करने वाले fstat () फ़ंक्शन को घोषित करने की विधि का उल्लेख निम्न पंक्ति में किया गया है:



$ #शामिल करें
$ पूर्णांक राज्य ( पूर्णांक फिल्देस , struct स्टेट * बुफे ) ;

जब भी हमें अपने प्रोग्राम में फंक्शन को कॉल करना होता है, तो हमें पहले हेडर फाइल्स को इम्पोर्ट करना होता है जो इस फंक्शन को “sys/ stat.h” के रूप में सपोर्ट करती हैं। फ़ंक्शन के लिए रिटर्न प्रकार हमेशा 'int' होता है और पैरामीटर में डेटा प्रकार 'int' के साथ 'fildes' शामिल होता है। Fildes उस फ़ाइल के लिए एक डिस्क्रिप्टर है जिसके बारे में हम जानकारी जानना चाहते हैं। एक अन्य पैरामीटर जो फ़ंक्शन को दिया जाता है वह है पॉइंटर 'buf'। यह एक 'स्ट्रक्चर स्टेट' पॉइंटर है जो उस स्ट्रक्चर की ओर इशारा करता है जहां हम फाइल के बारे में डेटा स्टोर करना चाहते हैं। यह fstat () फ़ंक्शन के लिए इनपुट पैरामीटर का संक्षिप्त विवरण है।



उदाहरण

हम अपने प्रोग्राम के माध्यम से किसी भी / विशिष्ट फ़ाइल के बारे में जानकारी प्राप्त करने के लिए पूर्व-उल्लेखित विवरण का उपयोग करते हैं और एक प्रोग्राम निष्पादित करते हैं। हम इस प्रोग्राम को निष्पादन के लिए माइक्रोसॉफ्ट विजुअल स्टूडियो सी कंपाइलर में लिखते हैं। हम पहले एक प्रोजेक्ट बनाकर उदाहरण के साथ शुरू करते हैं और फिर इसे विजुअल स्टूडियो में सी रिपॉजिटरी में जोड़ते हैं। परियोजना को सी फाइलों में जोड़ने के लिए, हम परियोजना के नाम के साथ '.c' शामिल करते हैं और इसे परियोजना की स्रोत फ़ाइल में जोड़ते हैं। परियोजना के निर्माण के बाद अगला कदम उन कार्यों के लिए सभी आवश्यक पुस्तकालयों को कॉल करना है जिन्हें हम बाद में कार्यक्रम में उपयोग कर सकते हैं। चूंकि हम इस लेख में fstat () फ़ंक्शन के उदाहरण को लागू कर रहे हैं, इसलिए हमें हेडर फ़ाइल “sys/ stat.h” को शामिल करना होगा। फ़ाइल जानकारी के लिए, हमें उस डिवाइस प्रकार को जानना होगा जहां फ़ाइल मौजूद है। डिवाइस के डेटा प्रकार को जानने के लिए, हम हेडर “type. एच' कार्यक्रम में





फ़ाइल जानकारी में वह समय शामिल होना चाहिए जब फ़ाइल पिछली बार खोली गई थी और उसमें किए गए संशोधन। इन टाइम कॉलिंग फ़ंक्शंस तक पहुँचने के लिए, हम हेडर फ़ाइल “times. एच' और 'एफसीएनटीएल. h' हैडर फ़ाइल अनुमति कार्यों के लिए। अंतिम हेडर “stdio. h' फ़ाइल को प्रोग्राम में प्रिंटफ () और स्कैनफ () विधियों को कॉल करने के लिए भी प्रोग्राम में शामिल किया गया है। कार्यक्रम में शामिल करने के लिए हमने जिन हेडर फाइलों पर चर्चा की, वे इस प्रकार हैं:

$ #शामिल करें
$ #शामिल करें
$ #शामिल करें
$ #शामिल करें
$ #शामिल करें

पहले बताई गई हेडर फाइलों को प्रोग्राम में सफलतापूर्वक आयात करने के बाद, अब हम एक विशिष्ट फाइल के बारे में जानकारी प्राप्त करने के लिए प्रोग्राम बनाते हैं। हम 'मुख्य' नाम के साथ रिटर्न प्रकार वाले फ़ंक्शन को 'int' के रूप में घोषित करते हैं। इस मुख्य कार्य में, हम एक 'चार' सरणी घोषित करते हैं और इसे उस फ़ाइल का नाम निर्दिष्ट करते हैं जिसके लिए हमें एक जानकारी जानने की आवश्यकता होती है। फिर, हम डेटा प्रकार 'स्ट्रक्चर' के साथ 'स्टेट इंफॉर्मेशन' को परिभाषित करते हैं। यह संरचना एक ऐसी जगह है जहाँ हम फ़ाइल के बारे में जानकारी संग्रहीत करते हैं।



फिर, हम एक अन्य चर को 'file_descriptor' नाम से डेटा प्रकार के साथ 'पूर्णांक' के रूप में परिभाषित करते हैं। 'अगर स्थिति' में, हम फ़ाइल के लिए पढ़ने और लिखने के संचालन के लिए अनुमति मांगते हैं, यदि यह मौजूद है, तो 'S_IWUSR' और सरणी का नाम 'क्रिएट ()' फ़ंक्शन को पास करना जो फ़ाइल के लिए अनुमतियों के लिए कॉल करता है यदि यह मौजूद है या अन्यथा एक नई फ़ाइल बनाएँ। हम इस क्रिएट () फंक्शन को 'अगर कंडीशन' में पास करते हैं, जो बताता है कि अगर क्रिएट () फंक्शन वैल्यू शून्य से कम है तो एक एरर पैदा करता है जिसे फाइल बनाने की जरूरत है। यदि fstat() पैरामीटर के साथ 'file_descriptor' और 'सूचना' और 'उस स्थान का पता जहां फ़ाइल जानकारी संग्रहीत है' शून्य के बराबर नहीं है, तो हम fstat() लौटाया गया मान प्रदर्शित करते हैं जो फ़ाइल की जानकारी है . और हम जानकारी को विशेषताओं के रूप में प्रिंट करते हैं, उदा। डिवाइस आईडी जिसमें फ़ाइल संग्रहीत है, डिवाइस की इनोड संख्या, फ़ाइल की सुरक्षा मोड, उपयोगकर्ता आईडी, समूह आईडी और लिंक की संख्या (हार्ड फॉर्म)।

इन विशेषताओं को प्रदर्शित करने के बाद, हम बयानों से बाहर आते हैं और क्लोज़ () विधि का उपयोग करके फ़ाइल को बंद कर देते हैं। फिर, अनलिंक () विधि को कॉल करके फ़ाइल को अनलिंक करें।

#शामिल करें
#शामिल करें
#शामिल करें
#शामिल करें
#शामिल करें

मुख्य ( ) {
चारो सरणी [ ] = 'amp.फ़ाइल' ;
struct स्टेट की जानकारी ;
पूर्णांक फाइल डिस्क्रिप्टर ;
यदि ( ( फाइल डिस्क्रिप्टर = बनाया गया ( सरणी , S_IWUSR ) ) < 0 )
आतंक ( 'बनाएं () त्रुटि' ) ;
वरना {
यदि ( राज्य ( फाइल डिस्क्रिप्टर , और जानकारी ) != 0 )
आतंक ( 'fstat () त्रुटि' ) ;
वरना {
डालता है ( 'fstat () मान:' ) ;
printf ( 'इनोड: %d \एन ' , ( पूर्णांक ) जानकारी। st_ino ) ;
printf ( 'डिवाइस_आईडी: %d \एन ' , ( पूर्णांक ) जानकारी। st_dev ) ;
printf ( 'डिवाइस का तरीका: %08x \एन ' , जानकारी। st_mode ) ;
printf ( 'no_of_hard_links: %d \एन ' , जानकारी। st_nlink ) ;
printf ( 'यू_आईडी: %d \एन ' , ( पूर्णांक ) जानकारी। st_uid ) ;
printf ( 'g_id: %d \एन ' , ( पूर्णांक ) जानकारी। st_gid ) ;
}
बंद करना ( फाइल डिस्क्रिप्टर ) ;
अनलिंक ( सरणी ) ;
}
}

प्रोग्राम पहले फ़ाइल संचालन के लिए अनुमति का उपयोग करेगा और फिर उसमें डेटा पढ़ता है और इसे आवंटित स्मृति स्थान में लिखता है। फ़ाइल से प्रदर्शित करने के लिए हमने प्रोग्राम को जो विशेषताएँ दी हैं, उन्हें आउटपुट में दिखाया गया है।

निष्कर्ष

हमने फ़ाइल जानकारी तक पहुँचने के लिए fstat () फ़ंक्शन का उपयोग किया। हमने सबसे पहले fstat () फ़ंक्शन के सिंटैक्स को फ़ंक्शन के मापदंडों के पूर्ण विवरण के साथ समझाया। फिर, हमने इस फ़ंक्शन के लिए एक प्रोग्राम लिखा, जहां हमने पहले अपने फ़ाइल स्वामी की अनुमति प्राप्त की और फिर फ़ाइल को पढ़ा और उन विशेषताओं को प्रदर्शित किया जो हम फ़ाइल की जानकारी से चाहते थे। हमने आपको fstat() की अवधारणा को समझने की पूरी कोशिश की और हमें उम्मीद है कि यह आपके कार्यक्रमों में आपकी मदद करेगा।