c - Problems with _filelength and chsize -


मेरे पास एक फ़ाइल exmpl.cpp है, जिसमें अगले कोड (से है) :

  #include & lt; sys / io.h & gt; # शामिल करें & lt; fcntl.h & gt; # शामिल करें & lt; sys / types.h & gt; # शामिल करें & lt; sys / stat.h & gt; # शामिल करें & lt; unistd.h & gt; # शामिल करें & lt; stdio.h & gt; शून्य मुख्य (शून्य) {int fh, परिणाम; अहस्ताक्षरित int nbytes = BUFSIZ; / * फ़ाइल खोलें / / (यदि फ़ाइल खोलने वाला ("डेटा", O_RDWR | O_CREAT, S_IREAD | S_IWRITE)) = -1) {printf ("फ़ाइल की लंबाई से पहले:% ld \ n", फ़ाइल लंबाई (एफएच) ); अगर ((परिणाम = चिसिज़ (एफएच, 32 9 678)) == 0) printf ("आकार सफलतापूर्वक परिवर्तित किया गया \ n"); अन्य printf ("आकार बदलने में समस्या \ n"); Printf ("फ़ाइल की लंबाई बाद:% ld \ n", _filelength (fh)); बंद (एफएच); }}  

इसे g ++ exmpl.cpp -o exmpl के साथ संकलित करने का प्रयास करें और इसे प्राप्त करें:

exmpl.cpp: 18:60: त्रुटि: इस क्षेत्र में '_filelength' घोषित नहीं किया गया exmpl.cpp: 19: 43: त्रुटि: इस क्षेत्र में 'chsize' घोषित नहीं किया गया था

क्या कोई वैकल्पिक कार्य है , जो इन कार्यों के समान हैं?

बहुत बहुत धन्यवाद।

समस्या यह है कि _filelength एक Windows-only फ़ंक्शन है।

लिनक्स / मैक में आप कार्य को हल करने के लिए stat का उपयोग कर सकते हैं:

  #include & lt; sys / stat.h & gt; लंबी फाइल_ लैंप (चार * एफ) {संरचना स्टेट स्टैट; स्टेट (एफ, एंड एसटी); वापसी st.st_size; }  

बदलते फ़ाइल आकार पर। फ़ंक्शन chsize भी एक लिनक्स नहीं है, लेकिन आप नौकरी करने के लिए उपयोग कर सकते हैं।


Comments

Popular posts from this blog

winforms - C# Form - Property Change -

java - Algorithm negotiation fail SSH in Jenkins -

java - Messages from .properties file do not display UTF-8 characters -