int source = open("hi", O_CREAT | O_RDONLY);
int dest = open("resultfile", O_CREAT | O_RDWR | O_TRUNC);
FILE* source1 = fdopen(source, "r");
FILE* dest1 = fdopen(dest, "w+");
// outside of a testcase I would write something into 'resultfile' here
close(source);
close(dest);
fclose(source1);
fclose(dest1);
int sourcef = open("resultfile", O_RDONLY);
printf(strerror(errno)); // <--- Bad file descriptor
मैं क्यों समझ में नहीं आता? मैं खुले() के साथ स्ट्रीम आधारित आईओ को सफलतापूर्वक कैसे मिला सकता हूं?मिश्रण fdopen() और खुले() -> बुरा फ़ाइल वर्णनकर्ता
एक लाइब्रेरी जो मैं काम कर रहा हूं केवल एक पूर्णांक एफडी स्वीकार करता है (और लाइब्रेरी इसे बंद करने के लिए आंतरिक रूप से जिम्मेदार है, संभवतया निकट() के साथ), लेकिन मुझे अभी भी फ़ाइल के साथ काम करने की आवश्यकता है, और मैं नहीं करता देखें कि एफ() कॉल (fread(), ftell() आदि के बिना ठीक से कैसे संभव है
धन्यवाद! मैंने मैनपेज को सावधानीपूर्वक पर्याप्त नहीं पढ़ा क्योंकि fdopen() manpage को फ्रीपेन() और fopen() के साथ मिश्रित किया गया है: / – Blub