मैं ग कोड का उपयोग कर फ़ाइल प्रकारों पता लगाने के लिए कोशिश कर रहा हूँ, यहाँ आदेश [], मैं उपयोग कर सकते हैं * आदेश बजाय घोषित करने के लिए यहाँ कोडग में नि: शुल्क चार सूचक
char *get_file_type(char *path, char *filename)
{
FILE *fp;
char command[100];
char file_details[100];
char *filetype;
sprintf(command, "file -i %s%s", path, filename);
fp = popen(command, "r");
if (fp == NULL) {
printf("Failed to run command\n");
exit(1);
}
while (fgets(file_details, sizeof(file_details)-1, fp) != NULL) {
filetype = (strtok(strstr(file_details, " "), ";"));
}
pclose(fp);
return filetype;
}
है? मैंने इसका इस्तेमाल करने की कोशिश की, लेकिन यह एक अपवाद फेंक दिया। हमें आदेश [] की तरह घोषित चर को मुक्त करने की आवश्यकता नहीं है? अगर हाँ कैसे?
क्या मैं इसके बजाय strdup का उपयोग कर सकता हूं? –
आप कर सकते हैं, लेकिन फिर आपको स्मृति रिसाव से बचने के लिए कॉलिंग फ़ंक्शन में 'फ्री' को कॉल करना याद रखना चाहिए। –