#include <sys/types.h> /* predefined types */
#include <unistd.h> /* include unix standard library */
#include <arpa/inet.h> /* IP addresses conversion utiliites */
#include <sys/socket.h> /* socket library */
#include <stdio.h> /* include standard I/O library */
#include <time.h>
#include <syslog.h> /* syslog system functions */
#include <signal.h> /* signal functions */
#include <errno.h> /* error code */
#include <string.h> /* error strings */
#include <stdlib.h>
#include <netinet/in.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <malloc.h>
#include "itoa.c" //converte da int a stringa
struct rich{
int richfd; // file descriptors
int frequenza;
struct rich* succ;
};
typedef struct rich* richiesta;
void inserimentorichieste(richiesta,char*);
void inizializzazionerichieste(richiesta );
int i=1;
int main(){
char* buff1="Granatello";
printf("%s \n",buff1);
richiesta testa;
inizializzazionerichieste(testa);
printf("sono qui prima del primo inserimento\n");
inserimentorichieste(testa,buff1);
printf("sono qui2 prima del secondo inserimento\n");
char* buff2="Mario";
inserimentorichieste(testa,buff2);
return 0;
}
void inizializzazionerichieste(richiesta testa){
testa=NULL;
}
void inserimentorichieste(richiesta testa,char* buff){
char nome1[]="./cache/richiesta";
char nome2[]=".txt";
char *n1;
richiesta q;
int nwrite;
n1=itostring(i);
q = (richiesta)malloc(sizeof(struct rich)); //con malloc in questa riga inserisce la prima stringa,ma va in errore sulla funz free...
strcat(nome1,n1);
strcat(nome1,nome2);
printf("%s\n", nome1);
//se metto la malloc in questa riga il programma nn va in errore,ma nn viene rispettato il nome dei 2 file di testo
//printf("sono qui4 dopo malloc %s\n",nome1);
if((q->richfd=open(nome1,O_RDWR|O_CREAT,S_IRUSR|S_IWUSR) )<0){
printf("errore nella creazione del file: %s\n",strerror(errno));
}
//printf("filefd: %d\n",q->richfd);
//printf("file = %d\n",file);
//printf("buff = %s\n",buff);
if((nwrite=write(q->richfd,buff,strlen(buff)))<0){
printf("errore nella scittura del file: %s\n",strerror(errno));
}
else {
printf("nwrite = %d\n",nwrite);
}
close(q->richfd);
q->succ=testa;
testa=q;
//q->frequenza++;
i++;
free(q);
printf("QUI i=%d e testa= %d\n",i,testa);
}