Compilando un programmino C che allego in calce ho questo strano output. Non riesco a capire perchè non viene generato il file eseguibile visto che sono segnalati solo dei warning e non capisco tutta la parte dopo i warning. Ho provato la compilazione con gcc 4.1.2 e gcc 3.3.5 su due computer differenti ma con lo stesso esito. Mi poreste aiutare? Grazie
Output gcc:
backuplog.c: In function `main':
backuplog.c:19: warning: passing arg 2 of `_IO_putc' from incompatible pointer type
backuplog.c:31: warning: passing arg 1 of `_IO_getc' from incompatible pointer type
/tmp/ccudikiy.o(.text+0xea): In function `main':
: undefined reference to `itoa'
collect2: ld returned 1 exit status
Programma:
Codice PHP:
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <sys/stat.h>
main(){
char nome1[26],num[5];
char cifra;
int cont_seq;
FILE *pb;//Descrittore di file per il file contente il valore sequenziale del salvataggio
char nome[] = "logservers";
char seq[] = "seq";
pid_t pcopy;//pid per il processo di copiatura
pb=fopen(seq,"r");
while (cifra=fgetc(pb) != EOF){
putc(cifra,num);
}
fclose(pb);
strcpy(nome1,nome);
strcat(nome1,num);
cont_seq=atoi(num);
cont_seq ++;
if(cont_seq > 30){
cont_seq=1;
}
itoa(cont_seq,num,10);
pb=fopen(seq,"w");
while((cifra=getc(&num)) != EOF ){
fputc(cifra,pb);
}
fclose(pb);
pcopy=fork();
if(pcopy < 0){
printf("Fork per conversione file fallita\n");
exit(-2);
}
if(pcopy == 0){//sono nel processo figlio per la conversione del file
execlp("scp","scp-r",nome,nome1,NULL);
}
if(pcopy>0){//sono nel processo padre
wait(NULL);//sono nel processo padre e aspetto che termini la conversione
execlp("gzip","gzip-r",nome1,NULL);
}
return 0;
}