c - Read structure contents using read() system call -


<पूर्व> #include "common.h" #include & lt; string.h & gt; संरचना बफर {int no; चार नाम [20]; }; Int main () {struct बफर बफ़; संरचना बफर read_buf; इंट एफडी; अगर ((एफडी = खुला ("read_write.txt", O_CREAT | O_RDWR, S_IRUSR | S_IWUSR)) & lt; 0) {PRINT_ERROR (errorbuf); } Buf.no = 10; strcpy (buf.name, "नितिन"); अगर (लिखिए (एफडी, और बफ़, आकार (ढांचा बफर)) & lt; 0) {PRINT_ERROR (त्रुटिबुफ); } Printf ("लिखित सफलतापूर्वक \ n"); / * संरचना की सामग्री को 'read_buf' * / exit (0) में पढ़ने के लिए यहां कोड जोड़ें; }

सामान्य.h
  #include & lt; stdio.h & gt; # शामिल करें & lt; unistd.h & gt; # शामिल करें & lt; stdlib.h & gt; # शामिल करें & lt; sys / stat.h & gt; # शामिल करें & lt; sys / types.h & gt; # शामिल करें & lt; fcntl.h & gt; चार त्रुटिबुफ [20]; # परिभाषित PRINT_ERROR \\ \ {\ sprintf (errorbuf, "% s:% d", __ फाइल __, __ LINE__); \ दर्पण (त्रुटिबुफ); \ Exit (-1); \} जबकि (0);   

मैंने फ़ाइल में एक संरचना लिखा है। लेकिन मुझे इस बात पर भ्रम हो रहा है कि पहले किस तरह की संरचना को 'read_buf' में लिखे गए ढांचे के प्रत्येक तत्व को पुनः प्राप्त किया जाए कृपया मुझे बताइए कि ऐसा कैसे करें।

धन्यवाद

  lseek ( एफडी, 0, SEEK_SET);   

काम करेगा, लेकिन कुछ अन्य चीजें हैं जिन्हें आपको चिंता करने की आवश्यकता होगी।

  • यह पोर्टेबल नहीं है।
  • आपको अलग-अलग बिल्डों पर संरचना पैकिंग के बारे में चिंता करने की आवश्यकता होगी।
  • आपके पास एंडियन समस्याएं क्रॉस प्लेटफ़ॉर्म होंगे।
  • विंडोज की आवश्यकता है O_BINARY।

    एक ज्ञात प्रारूप में संरचना को पुनर्प्रेषित करना लगभग हमेशा बेहतर होता है (ज्ञात समाप्ति के साथ) ताकि आप डेटा को वापस मज़बूती से पढ़ सकें।

Comments

Popular posts from this blog

qt - switch/case statement in C++ with a QString type -

python - sqlite3.OperationalError: near "REFERENCES": syntax error - foreign key creating -

Python's equivalent for Ruby's define_method? -