begin process at 2012 05 27 14:59:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Applications Linux

 > COPIER UN FICHIER, LOG DES ACTIONS [GCC]

COPIER UN FICHIER, LOG DES ACTIONS [GCC]


 Information sur la source

Note :
6,5 / 10 - par 2 personnes
6,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Applications Linux Niveau :Débutant Date de création :25/04/2003 Date de mise à jour :27/08/2003 20:55:58 Vu / téléchargé :5 406 / 178

Auteur : frzburn

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
(Screenshot de la version précédante)

Mon premier programme en c, dans Linux
Il ne fait pas grand choses...
Il permet de copier un fichier vers un autre.
Il place également les actions dans un fichier log.      

Source

  • ================
  • main.c
  • ================
  • /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
  • | file cloner |
  • | |
  • | Program that copies one file to another. |
  • | |
  • | Version 0.2 |
  • | |
  • | Files: main.c* |
  • | copy.c |
  • | log.c |
  • | |
  • | Last modification: 27.08.2003 |
  • | |
  • | Author: frzburn |
  • | E-mail: frzburn@mindless.com |
  • | |
  • \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  • #include <stdio.h>
  • /* Functions prototypes */
  • void log(char *loginfo, char *logxinfo);
  • void copy(char *file_in, char *file_out);
  • int main(int argc, char *argv[])
  • {
  • char file_in[28];
  • char file_out[28];
  • /* Sends information to log() */
  • log("Program started", "");
  • /* Reads input and output file from user */
  • printf("Enter input file: ");
  • scanf("%s", file_in);
  • printf("Enter output file: ");
  • scanf("%s", file_out);
  • /* Calls copy() function, then sends
  • information to log() */
  • copy(file_in, file_out);
  • log("File copied -> ", file_in);
  • /* Sends information to log() */
  • log("Program exited", "" );
  • return(0);
  • }
  • ================
  • log.c
  • ================
  • /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
  • | file cloner |
  • | |
  • | Program that copies one file to another. |
  • | |
  • | Version 0.2 |
  • | |
  • | Files: main.c |
  • | copy.c |
  • | log.c* |
  • | |
  • | Last modification: 27.08.2003 |
  • | |
  • | Author: frzburn |
  • | E-mail: frzburn@mindless.com |
  • | |
  • \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <time.h>
  • void log(char *loginfo, char *logxinfo)
  • {
  • struct tm *tm_ptr;
  • time_t the_time;
  • char buf[256];
  • (void) time(&the_time);
  • tm_ptr = localtime(&the_time);
  • strftime(buf, 256, "%b %d %H:%M:%S", tm_ptr);
  • /* Sends time and date to the logfile */
  • FILE *logfile;
  • logfile = fopen("logfile.log", "a");
  • fprintf(logfile, "%s - %s%s\n", buf, loginfo, logxinfo);
  • fclose(logfile);
  • }
  • ================
  • copy.c
  • ================
  • /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
  • | file cloner |
  • | |
  • | Program that copies one file to another. |
  • | |
  • | Version 0.2 |
  • | |
  • | Files: main.c |
  • | copy.c* |
  • | log.c |
  • | |
  • | Last modification: 27.08.2003 |
  • | |
  • | Author: frzburn |
  • | E-mail: frzburn@mindless.com |
  • | |
  • \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  • #include <stdio.h>
  • #include <stdlib.h>
  • void copy(char *file_in, char *file_out)
  • {
  • int c;
  • FILE *in, *out;
  • /* Copies the file */
  • in = fopen(file_in,"r");
  • out = fopen(file_out,"w");
  • while((c = fgetc(in)) != EOF)
  • fputc(c,out);
  • }
  • ================
  • Makefile
  • ================
  • all: fc
  • # Wich compiler
  • CC = gcc
  • # Where are include files kept
  • INCLUDE = .
  • # Options for development
  • CFLAGS = -g -Wall -ansi
  • # Options for release
  • # CFLAGS = -o -Wall -ansi
  • t2000: main.o log.o copy.o
  • $(CC) -o fc main.o log.o copy.o
  • main.o: main.c log.c copy.c
  • $(CC) -I$(INCLUDE) $(CFLAGS) -c main.c
  • log.o: main.c copy.c
  • $(CC) -I$(INCLUDE) $(CFLAGS) -c log.c
  • copy.o: main.c log.c
  • $(CC) -I$(INCLUDE) $(CFLAGS) -c copy.c
================
main.c
================

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
| file cloner                                                     |
|                                                                 |
| Program that copies one file to another.                        |
|                                                                 |
| Version 0.2                                                     |
|                                                                 |
| Files: main.c*                                                  |
|        copy.c                                                   |
|        log.c                                                    |
|                                                                 |
| Last modification: 27.08.2003                                   |
|                                                                 |
|     Author: frzburn                                             |
|     E-mail: frzburn@mindless.com                                |
|                                                                 |
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#include <stdio.h>

/* Functions prototypes */
void log(char *loginfo, char *logxinfo);
void copy(char *file_in, char *file_out);

int main(int argc, char *argv[])
{
  char file_in[28];
  char file_out[28];

  /* Sends information to log() */
  log("Program started", "");

  /* Reads input and output file from user */
  printf("Enter input file: ");
  scanf("%s", file_in);
  printf("Enter output file: ");
  scanf("%s", file_out);

  /* Calls copy() function, then sends
     information to log() */
  copy(file_in, file_out);
  log("File copied -> ", file_in);

  /* Sends information to log() */
  log("Program exited", "" );

return(0);
}




================
log.c
================

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
| file cloner                                                     |
|                                                                 |
| Program that copies one file to another.                        |
|                                                                 |
| Version 0.2                                                     |
|                                                                 |
| Files: main.c                                                   |
|        copy.c                                                   |
|        log.c*                                                   |
|                                                                 |
| Last modification: 27.08.2003                                   |
|                                                                 |
|     Author: frzburn                                             |
|     E-mail: frzburn@mindless.com                                |
|                                                                 |
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void log(char *loginfo, char *logxinfo)
{
  struct tm *tm_ptr;
  time_t the_time;
  char buf[256];

  (void) time(&the_time);
  tm_ptr = localtime(&the_time);
  strftime(buf, 256, "%b %d %H:%M:%S", tm_ptr);

  /* Sends time and date to the logfile */
  FILE *logfile;
  logfile = fopen("logfile.log", "a");
  fprintf(logfile, "%s - %s%s\n", buf, loginfo, logxinfo);
  fclose(logfile);
}




================
copy.c
================

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
| file cloner                                                     |
|                                                                 |
| Program that copies one file to another.                        |
|                                                                 |
| Version 0.2                                                     |
|                                                                 |
| Files: main.c                                                   |
|        copy.c*                                                  |
|        log.c                                                    |
|                                                                 |
| Last modification: 27.08.2003                                   |
|                                                                 |
|     Author: frzburn                                             |
|     E-mail: frzburn@mindless.com                                |
|                                                                 |
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#include <stdio.h>
#include <stdlib.h>

void copy(char *file_in, char *file_out)
{
  int c;
  FILE *in, *out;

  /* Copies the file */
  in = fopen(file_in,"r");
  out = fopen(file_out,"w");

  while((c = fgetc(in)) != EOF)
    fputc(c,out);
}




================
Makefile
================

all: fc

# Wich compiler
CC = gcc

# Where are include files kept
INCLUDE = .

# Options for development
CFLAGS = -g -Wall -ansi

# Options for release
# CFLAGS = -o -Wall -ansi

t2000: main.o log.o copy.o
	$(CC) -o fc main.o log.o copy.o

main.o: main.c log.c copy.c
	$(CC) -I$(INCLUDE) $(CFLAGS) -c main.c

log.o: main.c copy.c
	$(CC) -I$(INCLUDE) $(CFLAGS) -c log.c

copy.o: main.c log.c
	$(CC) -I$(INCLUDE) $(CFLAGS) -c copy.c

 Conclusion

Je ne sais pas si mon programme marche dans MS Windows, ne ne l'ai pas encore testé.
Peut-être que la fonction time causerait problème. Surtout pour le fichier log...

Pour compiler:
J'ai remplacer mon vieux script comp par un Makefile. Alors il vous suffit de taper make.


En tant que programmeur débutant, je suis ouvert à toutes suggestions.    

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

ENCORE UN PONG (LINUX, CURSES) [GCC]
SOCKETS CLIENT/SERVER [GCC]

 Sources de la même categorie

Source avec Zip TRAITEMENT D'IMAGE PGM par Jios
Source avec une capture COLORIMÈTRE NUMÉRIQUE LINUX par valchek
Source avec Zip TRAITEMENTS D'IMAGES AU FORMAT PGM AVEC LES ALGORITHMES DE C... par lemout
Source avec Zip ALGORITHME ACO INTERFACE GTK par RyBeN
Source avec Zip COMPRESSER SES SAUVEGARDES SMSBACKUPRESTORE (ANDROID) EN C A... par ThalLab

Commentaires et avis

Commentaire de loicpark le 09/06/2004 11:00:14

bonjour.
Je suis moi aussi debutant.
n'y a t'il pas de fonction qui permet de copier un fichier sans devoir l'ouvrir, le lire, et reécrire dans un autre fichier....
C'est a dire une fonction qui prend en parametre le fichier source; le fichier destination et qui copie tout simplement.
G entendu parlé de la fonction rename(); car en changeant le nom dans l'arboressance, elle dupliquerai le fichier... G pas reussi...
merci...

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales