Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C भाषा में फाइल ऑपरेशन्स (File Operations)


फाइल ऑपरेशन्स का अवलोकन

C में फाइल्स पर पांच मूल ऑपरेशन किए जाते हैं:

  1. नाम देना (Naming) - फाइल का नाम और पथ निर्दिष्ट करना
  2. खोलना (Opening) - fopen() से फाइल पॉइंटर प्राप्त करना
  3. पढ़ना (Reading) - fgetc(), fgets(), fread(), fscanf()
  4. लिखना (Writing) - fputc(), fputs(), fwrite(), fprintf()
  5. बंद करना (Closing) - fclose() से संसाधन मुक्त करना

फाइल खोलने के मोड्स (File Opening Modes)

मोडविवरणफाइल मौजूद हैफाइल नहीं है
rकेवल पढ़नाशुरुआत से खुलती हैNULL लौटाता है
wकेवल लिखनासामग्री मिट जाती हैनई बनती है
aजोड़ना (Append)अंत से लिखना शुरूनई बनती है
r+पढ़ना + लिखनाशुरुआत सेNULL
w+लिखना + पढ़नासामग्री मिट जाती हैनई बनती है
a+जोड़ना + पढ़नाअंत सेनई बनती है

बाइनरी मोड के लिए अंत में b जोड़ें: rb, wb, ab, r+b, w+b, a+b।

सिंटैक्स सारांश

FILE *fp;
fp = fopen("filename.txt", "r");  // खोलना

// पढ़ना
int ch = fgetc(fp);
char str[100];
fgets(str, 100, fp);
fread(ptr, size, count, fp);

// लिखना
fputc(ch, fp);
fputs(str, fp);
fwrite(ptr, size, count, fp);

fclose(fp);  // बंद करना

व्यावहारिक उदाहरण: फाइल कॉपी (सुधारित)

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *src, *dest;
    char srcName[100], destName[100];
    char buffer[4096];
    size_t bytes;
    
    printf("स्रोत फाइल: ");
    scanf("%99s", srcName);
    src = fopen(srcName, "rb");  // बाइनरी मोड
    if (!src) { perror("स्रोत त्रुटि"); return 1; }
    
    printf("लक्ष्य फाइल: ");
    scanf("%99s", destName);
    dest = fopen(destName, "wb");
    if (!dest) { perror("लक्ष्य त्रुटि"); fclose(src); return 1; }
    
    while ((bytes = fread(buffer, 1, sizeof(buffer), src)) > 0) {
        if (fwrite(buffer, 1, bytes, dest) != bytes) {
            perror("लेखन त्रुटि");
            break;
        }
    }
    
    fclose(src);
    fclose(dest);
    printf("कॉपी पूर्ण।\n");
    return 0;
}

महत्वपूर्ण फंक्शन्स

फंक्शनउपयोग
feof(fp)EOF जांच
ferror(fp)त्रुटि जांच
rewind(fp)शुरुआत पर जाएं
fseek(fp, offset, whence)विशिष्ट स्थान पर जाएं
ftell(fp)वर्तमान स्थिति प्राप्त करें
remove(name)फाइल हटाएं
rename(old, new)फाइल नाम बदलें

सर्वोत्तम अभ्यास

  • हमेशा fopen() का रिटर्न मान जांचें।
  • बाइनरी डेटा के लिए "rb"/"wb" उपयोग करें।
  • बड़े डेटा के लिए बफर (fread/fwrite) उपयोग करें।
  • fclose() हमेशा कॉल करें, त्रुटि होने पर भी।
  • perror() से सिस्टम त्रुटि संदेश प्रिंट करें।
  1. C भाषा में हाई-लेवल I/O फंक्शन्स C भाषा में हाई-लेवल I/O फंक्शन्स

    I/O फंक्शन्स के प्रकार हाई-लेवल I/O: मनुष्यों द्वारा आसानी से समझा जाता है, पोर्टेबल होता है। लो-लेवल I/O: कंप्यूटर द्वारा समझा जाता है, तेज़ होता है लेकिन नॉन-पोर्टेबल। हाई-लेवल I/O फंक्शन्स की सूची फंक्शनविवरण fprintf()फाइल में डेटा लिखना fscanf()फाइल से डेटा पढ़ना putc() / fputc()फाइल में कै

  1. C भाषा में शिफ्ट ऑपरेशन क्या हैं? C भाषा में शिफ्ट ऑपरेशन क्या हैं?

    समस्या C भाषा का उपयोग करके किसी संख्या के बाएं शिफ्ट, दाएं शिफ्ट और कॉम्प्लीमेंट को दिखाने का सरल प्रोग्राम क्या है? समाधान बाएं शिफ्ट (Left Shift) यदि किसी वेरिएबल का मान एक बार बाएं शिफ्ट किया जाता है, तो उसका मान दोगुना हो जाता है। उदाहरण के लिए, a = 10, तो a<<1 = 20 दाएं शिफ्ट (Right Sh

  1. C भाषा में खोज तकनीकें (Searching Techniques) C भाषा में खोज तकनीकें (Searching Techniques)

    खोज (Searching) का परिचय खोज तकनीक का अर्थ है किसी सूची में किसी कुंजी तत्व (key element) को ढूंढना। यदि तत्व मिल जाता है तो खोज सफल (successful), अन्यथा असफल (unsuccessful) होती है। C में दो प्रमुख खोज तकनीकें रैखिक खोज (Linear Search) द्विआधारी खोज (Binary Search) 1. रैखिक खोज (Linear Search)