[C] Opérations systèmes
Introduction
Le langage C permet d'effectuer des opérations systèmes grâce à certaines fonctions de bibliothèques.
Création d'un répertoire
La fonction mkdir permet de créer un répertoire :
#include <stdio.h>
#include <sys/stat.h>
int main() {
const char* nom_du_repertoire = "nouveau_repertoire";
if (mkdir(nom_du_repertoire, 0777) == 0) {
printf("Répertoire créé avec succès.\n");
} else {
printf("Erreur lors de la création du répertoire.\n");
}
return 0;
}
Affichage du contenu d'un répertoire
La fonction readdir prend le chemin d'un répertoire en entrée et retourne un tableau avec les chemins de chaque sous-dossiers :
#include <stdio.h>
#include <dirent.h>
int main() {
const char* chemin_du_dossier = "."; // Chemin du dossier à lister, ici le dossier courant
DIR* directory = opendir(chemin_du_dossier);
struct dirent* file;
if (directory) {
while ((file = readdir(directory)) != NULL) {
printf("%s\n", file->d_name);
}
closedir(directory);
} else {
printf("Erreur lors de l'ouverture du répertoire.\n");
}
return 0;
}
Affichage du chemin du répertoire courant
Vous pouvez récupérer le CWD (Current Working Directory) grâce à la fonction getcwd :
#include <stdio.h>
#include <unistd.h>
int main() {
char buffer[1024]; // Buffer pour stocker le chemin
if (getcwd(buffer, sizeof(buffer)) != NULL) {
printf("Le répertoire de travail actuel est : %s\n", buffer);
} else {
perror("Erreur lors de l'obtention du répertoire de travail");
return 1;
}
return 0;
}
Affichage d'information d'un fichier
Grâce à la commande stat vous allez pouvoir afficher les caractéristiques d'un fichier tel que sa taille, son type, ses permissions, etc.
#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
int main() {
const char *nom_fichier = "mon_fichier.txt"; // Le nom du fichier que vous voulez analyser
struct stat info;
if (stat(nom_fichier, &info) == 0) {
printf("Nom du fichier : %s\n", nom_fichier);
printf("Taille du fichier : %ld octets\n", info.st_size);
printf("Permissions : %o\n", info.st_mode & 0777); // Affichage des permissions en octal
// Vous pouvez accéder à plus d'informations dans la structure 'info'
} else {
perror("Erreur lors de la récupération des informations du fichier");
return 1;
}
return 0;
}
Renommer un fichier
Vous allez pouvoir renommer vos fichier grâce à la fonction rename :
#include <stdio.h>
int main() {
const char* ancien_nom = "ancien_nom.txt";
const char* nouveau_nom = "nouveau_nom.txt";
if (rename(ancien_nom, nouveau_nom) == 0) {
printf("Le fichier a été renommé avec succès.\n");
} else {
perror("Erreur lors du renommage du fichier");
return 1;
}
return 0;
}