2011-04-06 16 views
5

मैं सिर्फ पता चला कि getline() समारोह जो मूल रूप से एक जीएनयू विस्तार है अब POSIX 2008 मानक का हिस्सा है।स्थिति

क्या कुछ अवलोकन है कि POSIX का यह संस्करण किस प्रकार समर्थित है?

+2

+1 पोर्टेबल –

उत्तर

2

मैं सिर्फ आगे जाना है और यह प्रयोग करेंगे। इसे लागू करने के संभव है getline (लेकिन अधिक शक्तिशाली getdelim) एक बहुत तेज/कुशल आवरण के आसपास fgets के रूप में है, इसलिए यदि आपको लगता है कि एक वापस आने के रूप में, getline का उपयोग कर वास्तव में अपने कार्यक्रम के किसी भी कम पोर्टेबल नहीं है करने के लिए तैयार कर रहे हैं। (__fpending का उपयोग कर, portably लागू नहीं किया जा सकता है जो किया और अनुकरण करने के लिए एक कार्यान्वयन विशेष हैक की आवश्यकता की तरह कुछ बनाम।)

इसके अलावा, जाहिर है, दोनों getline और getdelim बस flockfile/funlockfile और fgetc के शीर्ष पर लागू किया जा सकता। यह बहुत कुशल नहीं है, लेकिन यह कहीं भी काम करेगा।

+1

'getdelim' और' getline' को '% 200 [^ x] 'रूपांतरण विनिर्देशक के साथ' fscanf' के शीर्ष पर भी लागू किया जा सकता है, जहां 'x' प्रतिस्थापित किया गया है, आपके द्वारा बफर स्पेस की मात्रा के साथ डिलीमीटर चरित्र के साथ आप 200 और रोकना चाहते हैं। (आप 'उपयोग कर सकते हैं' %%% zu [^% c] 'इस रूपांतरण विनिर्देशक उत्पन्न करने के लिए साथ snprintf'।) –

संबंधित मुद्दे