c - Offset(2nd) argument in lseek -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 2 जवाब

मैं नीचे कार्यक्रम चलाता हूँ मुझे उम्मीद थी कि यह त्रुटि देगी लेकिन यह पूरी तरह से चला और आउटपुट दिया।

प्रोग्राम:

  #include & lt; stdio.h & gt; # शामिल करें & lt; unistd.h & gt; # शामिल करें & lt; fcntl.h & gt; #include & lt; string.h & gt; # शामिल करें & lt; stdlib.h & gt; Int main () {int fd, retval; चार wBuf [20] = "मेरे दोस्त बनो", आरबीएफ [20] = {0}; एफडी = ओपन ("test.txt", O_RDWR | O_CREAT, 0666); लिखिए (एफडी, डब्ल्यूबीयूएफ, स्ट्रेलन (डब्लूबीएफ)); रिटावल = लेसेक (एफडी, -3 एल, SEEK_END); // दूसरी तर्क देखें अगर (रेटवाल & lt; 0) {दर्पण ("lseek"); बाहर निकलने के (1); } पढ़ें (एफडी, आरबीएफ, 5); Printf ("% s \ n", rBuf); }  

lseek भी काम करता है

  lseek (fd, -3i, SEEK_END); // कुछ भी मुद्रित नहीं किया  

अन्य अक्षरों के लिए यह त्रुटि दे रहा है

  त्रुटि: पूर्णांक स्थिरांक पर अमान्य प्रत्यय "S"  

lseek पर एल और I का क्या अर्थ है?

एल का अर्थ है कि स्थिरांक को पूर्णांक प्रकार के बजाय एक लंबे प्रकार के रूप में माना जाएगा।

< P> I एक मानक सी प्रत्यय नहीं है, जब तक कि आपके कंपाइलर में कुछ प्रकार का एक्सटेंशन (a) हो, यह मान्य नहीं होना चाहिए। यह हो सकता है यह कि आप ऊपरी-केस के लिए कम-केस l (जो कि L के समान है) का गलत अर्थ हो। मैं , यद्यपि मुझे संदेह है कि उस स्थिति में यह अभी भी तलाश, पढ़ा और मुद्रित करेगा, कुछ ऐसा संकेत करने के लिए लगता है कि ऐसा नहीं है।

वास्तव में, एकमात्र तरीका मैं सोच सकता हूँ कि आप कहां मानक सी में I का उपयोग कर सकते हैं और इसे प्रिंट करना कुछ नहीं होगा:

  #define I * 0  

जो प्रभावी रूप से lseek तर्क को शून्य में बदल देगा।


(ए) जैसे कि जटिल डेटा प्रकारों के साथ जीसीसी, जैसा कि हो सकता है मामला। lseek में से किसी एक को पास करने का असर सबसे अच्छा में बेकार होने की संभावना है।

शायद यह फ़ाइल के भीतर एक विशिष्ट चरित्र स्थिति की तलाश करने का प्रयास है और फिर भी उस स्थिति में सही कोण पर: -)


Comments