Copy of https://perso.isima.fr/loic/unixc/tpc-fourretout.php
tete du loic

 Loïc YON [KIUX]

  • Enseignant-chercheur
  • Référent Formation Continue
  • Responsable des contrats pros ingénieur
  • Référent entrepreneuriat
  • Responsable de la filière F2 ingénieur
  • Secouriste Sauveteur du Travail
mail
loic.yon@isima.fr
phone
(+33 / 0) 4 73 40 50 42
location_on
Institut d'informatique ISIMA
  • twitter
  • linkedin
  • viadeo

[C] The last but not the least

 Cette page commence à dater. Son contenu n'est peut-être plus à jour. Contactez-moi si c'est le cas!

Date de première publication : 2014/12/8

Ce dernier TP vise à expérimenter les dernières notions vues en cours...

Fonctions à nombre d'arguments variable

À votre avis, que fait le programme suivant :

#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
	
int main()
{
	struct dirent * lecture;
	DIR *rep;
	rep = opendir("." );
	while ((lecture = readdir(rep))) {
	    printf("%s\n", lecture->d_name);
	}
	closedir(rep);
}

Créer une fonction à nombre d'arguments variable qui affiche le contenu des répertoires passés en paramètre !

fonction1(2, "tp1", "tp2");
fonction2("tp1", "tp2", NULL);

Utiliser la fonction qsort()

qsort() est une fonction en C mais que permet-elle de faire, quel fichier entête faut-il inclure et comment l'utiliser ?

Toutes ces réponses sont dans man

Pour le fun, vous pouvez écrire une petite macro ITER qui pourrait simplifier l'usage de la boucle :


ITER(i, 20, printf("%d", tab[i]));

Annuaire des languages

Fichiers binaires

Vous pouvez également réutiliser le tableau de structures que vous avez créé au TP d'il y a longtemps (TP 4).


donnee_t tab[] = { {"Gosling", Java", 1993}, 
                   {"Van Rossum", "Python", 1991}, 
                   {"Stroustrup", "C++", 1983},
                   {"Ritchie", "C",1972} 
                 };
AuteurLangageAnnée
Backus JohnFORTRAN1957
Goldfarb CharlesGML1969
Wirth NiklausPascal1970
Ritchie DennisC1972
Kernighan BrianC1972
Sussman Gerald JayScheme1975
Steele Guy LScheme1975
Naughton PatrickJava1983
Cox BradObjective C1983
Berners Lee TimWWW~1990
Van Rossum GuidoPython1991
Gosling JamesJava1993
Lerdorf RasmusPHP1994
Heich BrendanJavscript1995
Odersky MartinScala2003
Lattner ChrisSwift2014

Tri des donneés

En utilisant qsort() et les bonnes fonctions de comparaison,

Questions

Que se passe-t-il dans les cas suivants :