Cimetière d'exercices de laboratoires
Page content
Chronomètre
-
Développer un programme
chrono
qui permet d’obtenir le temps réel d’exécution d’une commande passé en argument (similaire àtime
). Pour ce faire, utiliser la fonctiongettimeofday
. -
Reprendre le programme
chrono
, et rajouter les informations sur le temps passé en mode utilisateur et noyau de la commande passé en argument. Pour ce faire, utiliser la commandewait3
.
Note: Pour vérifier les temps d’exécution obtenue à l’aide de votre programme, vour pouvez utiliser la commande time chrono [la commande à exécuter]
. Les temps fournis par le programme chrono
ne devraient pas être supérieur aux temps fournis par la commande time
.
Descripteur de fichier
- Quelle sera la valeur du fichier resultat après l’exécution du programme suivant, détaillez votre réponse. Vérifiez votre réponse en l’exécutant.
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char **argv) {
char message[] ="Programme mystére\n";
int fdout = creat("resultat", 0666);
if (fdout == -1) {
perror("creat");
return 1;
}
ssize_t w = write(fdout, message, strlen(message));
if (w == -1) {
perror("write");
return 1;
}
int newfdout = dup(fdout);
off_t offset = lseek(newfdout, -9, SEEK_CUR);
if (offset == -1) {
perror("lseek");
return 1;
}
w = write(fdout, message, strlen(message));
if (w == -1) {
perror("write");
return 1;
}
close(fdout);
return 0;
}
Minitail
- Question optionnelle : Reprennez la question précédente, mais cette fois ci :
- Capturez l’information de taille du fichier passé en argument,
- Capturez la date de la dernière modification,
- Effectuez une pause
sleep
, - Vérifiez la nouvelle taille du fichier, ainsi que la date de la dernière modification,
- Réaffichez l’intégralité du fichier si on a au moins un des cas suivants:
- La taille a diminué
- La taille a augmenté et l’ancien contenu a été écrasé
- La taille est la même et le contenu a été modifié
- La taille et le contenu sont les mêmes mais la date de la dernière modification est modifiée
- Sinon affichez les nouvelles modifications