Ciao a tutti,

sto scrivendo un programmino in C da far girare su una macchina Linux, che ricevuti come parametri il nome di un file ed un numero intero x, scriva in tale file dopo x secondi la data e l’orario corrente.

Il codice che ho scritto è:
codice:
#include<stdlib.h>
#include<stdio.h>
#include<unistd.h>
#include<signal.h>
#include<fcntl.h>
#include<sys/stat.h>

void MyHandler(int signumber);

int main(int argc, char **argv)
{
 int fd, delay_time;
 char nome_file[40];
 signal(SIGALRM,MyHandler);
 if(argc != 3)
 {
  printf("Errore: numero di parametri immessi errato.\n");
  printf("Esecuzione terminata.\n");
  exit(0);
 }
 sprintf(nome_file,"%s",argv[1]);
 delay_time = atoi(argv[2]);
 fd = open(nome_file, O_WRONLY|O_CREAT, S_IRWXU|S_IXGRP|S_IXOTH);
 alarm(delay_time);
 pause();
 system("date > nome_file");
 close(fd);
 return 0;
}

void MyHandler(int signumber)
{
}
Come si può notare facendo girare il programma c’è un errore nell’uso della funzione system poiché la data viene si scritta, ma non in un file chiamato come il contenuto della variabile nome_file, ma chiamato invece proprio nome_file (come la variabile!!).

Come posso risolvere questo problema? Grazie...