मैं एक प्रोग्राम लिखना चाहता हूं जो (...) डायरेक्टरी और (...) फाइल बनाता है
क्योंकि यह एक बहुत ही सामान्य प्रश्न है, यहाँ कई निर्देशिकाओं के स्तर और कॉल फ़ोपेन बनाने के लिए कोड है। मैं प्रिंट के साथ त्रुटि संदेश प्रिंट करने के लिए एक ग्नू एक्सटेंशन का उपयोग कर रहा हूं।
void rek_mkdir(char *path) {
char *sep = strrchr(path, '/');
if(sep != NULL) {
*sep = 0;
rek_mkdir(path);
*sep = '/';
}
if(mkdir(path, 0777) && errno != EEXIST)
printf("error while trying to create '%s'\n%m\n", path);
}
FILE *fopen_mkdir(char *path, char *mode) {
char *sep = strrchr(path, '/');
if(sep) {
char *path0 = strdup(path);
path0[ sep - path ] = 0;
rek_mkdir(path0);
free(path0);
}
return fopen(path,mode);
}