इस लेख में, हम की कार्यक्षमता और उपयोग का पता लगाएंगेfseek सी प्रोग्रामिंग भाषा में काम करता है। फ़ाइल हैंडलिंग सी प्रोग्रामिंग का एक अनिवार्य पहलू है, और fseek कुशल फ़ाइल स्थिति और खोज के लिए एक शक्तिशाली उपकरण प्रदान करता है। हम इसके सिंटैक्स, मापदंडों, पदों की तलाश, बाइनरी फाइलों के साथ काम करने और इसके उपयोग को प्रदर्शित करने के लिए उदाहरण प्रदान करेंगे। इस लेख के अंत तक, आपको सी प्रोग्रामिंग में fseek और इसके लाभों की व्यापक समझ होगी।
![]() |
fseek in c in hindi |
परिचय
C में फाइल हैंडलिंग हमें फाइलों में हेरफेर करने, उनसे पढ़ने, उन्हें लिखने और विभिन्न ऑपरेशन करने की अनुमति देता है।fseek एक फ़ंक्शन है जिसे विशेष रूप से किसी फ़ाइल के भीतर उसके स्थिति संकेतक को संशोधित करके नेविगेट करने के लिए डिज़ाइन किया गया है। बड़ी फ़ाइलों के साथ काम करते समय या जब आपको किसी फ़ाइल के विशिष्ट भागों को जल्दी से एक्सेस करने की आवश्यकता होती है, तो यह सुविधा विशेष रूप से उपयोगी होती है।
सी में फाइल हैंडलिंग को समझना
विवरण में गोता लगाने से पहलेfseek, C में फ़ाइल प्रबंधन की बुनियादी समझ होना आवश्यक है। C में, फ़ाइल प्रबंधन में तीन चरण शामिल होते हैं: फ़ाइल खोलना, फ़ाइल पर संचालन करना और फ़ाइल को बंद करना।fseek फ़ंक्शन दूसरे चरण के अंतर्गत आता है, जहाँ हम फ़ाइल के विभिन्न भागों तक पहुँचने के लिए फ़ाइल की स्थिति संकेतक में हेरफेर करते हैं।
फसेक क्या है?
fseek सी में एक लाइब्रेरी फ़ंक्शन है जो हमें किसी दिए गए फ़ाइल स्ट्रीम से जुड़े फ़ाइल स्थिति सूचक को सेट करने की अनुमति देता है। यह फ़ाइल पॉइंटर को फ़ाइल के भीतर एक निर्दिष्ट स्थान पर ले जाने का एक सुविधाजनक तरीका प्रदान करता है, जिससे कुशल रैंडम एक्सेस को सक्षम किया जा सकता है।
fseek सिंटैक्स
के लिए वाक्य रचनाfseek इस प्रकार है:
int fseek(FILE *stream, long offset, int origin);
fseek पैरामीटर्स
- धारा: फ़ाइल स्ट्रीम का प्रतिनिधित्व करने वाली फ़ाइल ऑब्जेक्ट के लिए एक सूचक।
- ओफ़्सेट: निर्दिष्ट मूल से ऑफसेट करने के लिए बाइट्स की संख्या।
- मूल: वह संदर्भ स्थिति जहां से ऑफसेट की गणना की जाती है। यह निम्न मानों में से एक ले सकता है:
- SEEK_SET: फ़ाइल की शुरुआत।
- SEEK_CUR: फ़ाइल सूचक की वर्तमान स्थिति।
- SEEK_END: फ़ाइल का अंत।
एक फ़ाइल में पदों की तलाश
साथfseek, हम ऑफ़सेट और मूल निर्दिष्ट करके किसी फ़ाइल में स्थिति खोज सकते हैं। आइए तीन उपलब्ध मूलों पर करीब से नज़र डालें:
SEEK_SET
का उपयोग करते हुएSEEK_SET क्योंकि मूल हमें फ़ाइल पॉइंटर को फ़ाइल के भीतर एक निरपेक्ष स्थिति में सेट करने की अनुमति देता है। उदाहरण के लिए, यदि हम ऑफ़सेट को 0 पर सेट करते हैं, तो फ़ाइल सूचक फ़ाइल की शुरुआत में स्थित होगा।
SEEK_CUR
का उपयोग करकेSEEK_CUR मूल के रूप में, हम फ़ाइल पॉइंटर को वर्तमान स्थिति के सापेक्ष सेट कर सकते हैं। एक सकारात्मक ऑफ़सेट फ़ाइल पॉइंटर को आगे ले जाता है, जबकि एक नकारात्मक ऑफ़सेट इसे पीछे की ओर ले जाता है।
SEEK_END
का उपयोग करते हुएSEEK_END क्योंकि मूल फ़ाइल पॉइंटर को फ़ाइल के अंत के सापेक्ष स्थित करने की अनुमति देता है। उदाहरण के लिए, ऑफ़सेट को -100 पर सेट करने से फ़ाइल पॉइंटर 100 बाइट्स फ़ाइल के अंत से पहले स्थित हो जाएगा।
बाइनरी फाइलों के साथ काम करना
fseek बाइनरी फ़ाइलों के साथ काम करते समय विशेष रूप से उपयोगी होता है जिसमें लाइन-आधारित संरचनाएं नहीं होती हैं। बाइनरी फ़ाइलों को अक्सर रैंडम एक्सेस की आवश्यकता होती है, औरfseek इन फ़ाइलों के भीतर नेविगेट करने के लिए एक सीधा तंत्र प्रदान करता है।
उदाहरण fseek का उपयोग
के उपयोग को दर्शाने के लिएfseek, आइए एक ऐसे परिदृश्य पर विचार करें जहां हमारे पास "data.txt" नाम की एक फ़ाइल है जिसमें कुछ रिकॉर्ड हैं। हम फ़ाइल की स्थिति के आधार पर फ़ाइल से एक विशिष्ट रिकॉर्ड पढ़ना चाहते हैं। यहाँ एक उदाहरण कोड स्निपेट है:
#include <stdio.h>
int main() {
FILE *file = fopen("data.txt", "rb");
if (file == NULL) {
printf("Error opening file.");
return 1;
}
fseek(file, 2 * sizeof(int), SEEK_SET);
int record;
fread(&record, sizeof(int), 1, file);
printf("Record: %d\n", record);
fclose(file);
return 0;
}
इस उदाहरण में, हम फ़ाइल को बाइनरी मोड में खोलते हैं ("आरबी") और उपयोग करेंfseek फ़ाइल पॉइंटर को तीसरे रिकॉर्ड में ले जाने के लिए (प्रत्येक रिकॉर्ड को मानते हुएint यहाँ प्रकार)। फिर हम रिकॉर्ड के मान को पढ़ते और प्रिंट करते हैं।
Fseek का उपयोग करने के लाभ
का उपयोग करते हुएfseek सी में फाइल हैंडलिंग से निपटने के दौरान कई फायदे प्रदान करता है:
- कुशल फ़ाइल पोजीशनिंग:fseek कुशल रैंडम एक्सेस प्रदान करते हुए, हमें एक फ़ाइल के भीतर जल्दी से नेविगेट करने की अनुमति देता है।
- लचीलापन: विभिन्न मूल का उपयोग करके फ़ाइल स्थिति संकेतक सेट करने की क्षमता फ़ाइल के विशिष्ट भागों तक पहुँचने में लचीलापन प्रदान करती है।
- बाइनरी फ़ाइल समर्थन:fseek बाइनरी फ़ाइलों के साथ काम करते समय विशेष रूप से उपयोगी होता है, जहां अक्सर रैंडम एक्सेस की आवश्यकता होती है।
Fseek का उपयोग करने की सीमाएँ
जबकिfseek एक शक्तिशाली कार्य है, इसकी कुछ सीमाएँ हैं:
- अनुक्रमिक पहुँच सीमा:fseek फ़ाइल के भीतर रैंडम एक्सेस के लिए सबसे उपयुक्त है। यदि आपके प्रोग्राम को संपूर्ण फ़ाइल को संसाधित करने के लिए अनुक्रमिक पहुंच की आवश्यकता है, तो अन्य कार्य जैसेफ़्रेड औरfwrite अधिक उपयुक्त हो सकता है।
- खोजने योग्य धाराओं तक सीमित:fseek केवल खोजने योग्य स्ट्रीम के साथ उपयोग किया जा सकता है, जैसे कि नियमित फ़ाइलें। इसका उपयोग गैर-खोज योग्य धाराओं, जैसे पाइप या सॉकेट के साथ नहीं किया जा सकता है।
निष्कर्ष
निष्कर्ष के तौर पर,fseek कुशल फ़ाइल पोजिशनिंग और सी में खोज के लिए एक मूल्यवान उपकरण है। हमें फाइल के भीतर विशिष्ट स्थानों पर फाइल पोजिशन इंडिकेटर सेट करने की अनुमति देकर,fseek रैंडम एक्सेस की सुविधा देता है और समग्र प्रदर्शन में सुधार करता है। हमने इसके वाक्य-विन्यास, मापदंडों, खोज पदों और इसके लाभों और सीमाओं का पता लगाया है। शामिलfseek आपकी फ़ाइल हैंडलिंग कोड में फ़ाइलों को प्रभावी ढंग से हेरफेर करने की आपकी क्षमता में काफी वृद्धि हो सकती है।
पूछे जाने वाले प्रश्न
कर सकते हैंfseek फाइल पॉइंटर को फाइल में पीछे ले जाने के लिए किसका प्रयोग किया जाता है?
हाँ,fseek के साथ ऋणात्मक ऑफ़सेट प्रदान करके फ़ाइल पॉइंटर को पीछे की ओर ले जा सकता हैSEEK_CUR मूल।
यदि ऑफ़सेट प्रदान किया जाता है तो क्या होता हैfseek फ़ाइल आकार से अधिक है?
यदि ऑफ़सेट फ़ाइल आकार से अधिक है और इसके साथ प्रयोग किया जाता हैSEEK_SET याSEEK_CUR, व्यवहार कार्यान्वयन-परिभाषित है। साथSEEK_END, फ़ाइल स्थिति संकेतक फ़ाइल के अंत में सेट है।
कर सकते हैंfseek फ़ाइल की सामग्री को संशोधित करने के लिए उपयोग किया जाता है?
नहीं,fseek केवल फ़ाइल सूचक की स्थिति बदलता है। फ़ाइल की सामग्री को संशोधित करने के लिए, आपको कार्यों का उपयोग करने की आवश्यकता हैfwrite याfprintf.
क्या उपयोग करने के बाद फ़ाइल को बंद करना आवश्यक हैfseek?
हां, फ़ाइल का उपयोग बंद करना अच्छा अभ्यास हैfclose जब आप सिस्टम संसाधनों को मुक्त करने के लिए इसमें हेरफेर कर लेते हैं।
क्या कोई विकल्प हैंfseek सी में फाइल पोजीशनिंग के लिए?
हाँ, का पर्याय हैfseek हैfsetpos फ़ंक्शन, जो फ़ाइल स्थिति संकेतक ऑब्जेक्ट का उपयोग करके फ़ाइल स्थिति सेट करता है। हालाँकि,fsetpos प्लेटफ़ॉर्म-विशिष्ट सीमाएँ हो सकती हैं, इसलिएfseek आम तौर पर अधिक व्यापक रूप से उपयोग किया जाता है।