Memento C/ANSI

 

Ce document décrit sommairement quelques fonctions C/ANSI qui seront utiles lors des TPs. Plus d'informations sont disponibles avec l'aide de la commande UNIX man.

malloc, calloc
Allocation de mémoire.
free
Libération de mémoire.
fopen
Ouverture d'un fichier.
fclose
Fermeture d'un fichier.
fscanf
Lecture d'une chaîne de caractères formatée dans fichier.
fread
Lecture d'un bloc d'octets dans un fichier binaire.
fwrite
Ecriture d'un bloc d'octets dans un fichier binaire.
printf, fprintf
Ecriture d'une chaîne de caractères formatée sur la console ou dans un fichier.
sqrt, log
Calcul d'une racine carrée, d'un logarithme néperien.

Fonctions utiles en traitement du signal

Allocation d'un tableau de double
Alloue un tableau de n nombre flottants en double précision :
double* x=(double *)calloc(n,sizeof(double));
Lecture d'un signal provenant d'un fichier ASCII
Lit le signal x de longueur n , dont les valeurs flottantes sont stockées sous forme ASCII dans le fichier de nom filename :
void read_signal(double* x,int n,char* filename) {
  int i;
  FILE *fp=fopen(filename,"rt");
  for (i=0;i<n;i++) {
   float t;
   fscanf(fp,"%f\n",&t);
   x[i]=(double)t;
  }
  fclose(fp);
}
Affichage d'un signal sur la console
Affiche le signal x de longueur n sur la console :
void print_signal(double* x,int n) {
  int i;
  for (i=0;i<n;i++) {
    printf("x[%d]=%f\n",i,x[i]);
  }
  printf("\n");
}
Ecriture d'un signal provenant d'un fichier ASCII
Ecrit le signal x de longueur n , sous forme de valeurs flottantes double précision ASCII dans le fichier de nom filename :
void save_signal(double* x,int n,char* filename) {
  int i;
  FILE *fp=fopen(filename,"wt");
  for (i=0;i<n;i++) {
   fprintf(fp,"%f\n",x[i]);
  }
  fclose(fp);
}