que estoy tratando de averiguar los tipos de archivos utilizando el código c, aquí está el códigopuntero char gratuito en c
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;
}
aquí en lugar de declarar comando [], puedo utilizar * mando? Traté de usarlo, pero arrojó una excepción. no necesitamos liberar las variables declaradas como comando []? Si es así, ¿cómo?
¿puedo usar strdup en su lugar? –
Puede, pero debe recordar llamar 'libre' en la (s) función (es) de llamada para evitar una pérdida de memoria. –