Правя създател на makefile, но останах в тази грешка на sprintf, най-любопитното е, че имам няколко sprintf преди този с грешката и те работят добре.
Ето кода:
if ( WIFEXITED(stat) ){
if ( WEXITSTATUS(stat) ) {
if ( cFiles == 0 && cFolders == 0 ) {
Crear(path);
}
cFolders = 1;
TEMP = malloc( sizeof(char)*( strlen(direntp->d_name) + 25 ) );
if ( TEMP == NULL ) {
perror("Malloc Error: ");
exit(1);
}
if ( sprintf(TEMP, "\n%s/%s.a: force\n\t$(MAKE) -C %s\n",direntp->d_name, direntp->d_name, direntp->d_name) < 0 ) {
perror("Sprintf Error: ");
exit(1);
}
write(STDOUT_FILENO,TEMP,strlen(TEMP));
f.name = malloc( sizeof(char)*( strlen(direntp->d_name)*2 + 3 ) );
if ( f.name = NULL ) {
perror("Malloc Error: ");
exit(1);
}
//This is the one with the problem!!!
if ( sprintf(f.name, "%s/%s.a", direntp->d_name, direntp->d_name) < 0 ) {
perror("Sprintf Error: ");
exit(1);
}
l = AddToList(l,&f);
}
}