Fonction système langage c
Résolu/Fermé
Hey,
J'écris actuellement un programme en C sous Linux. J'ai besoin d'une fonction qui rcupère le contenu de la variable PATH. J'ai trouvé la fonction getenv(), où il faut lui spécifier la variable d'environnement en paramètre. Mais elle me rend une chaine de caractère avec les chemin séparer par des deux points. Y a t-il une fonction plus adapaté ou chaque chemin est stocké dans une chaine de caractère, ou alors il faut que je me débrouille pour les décortiquer de cette chaine ?
ET j'aimerais aussi savoir si il existe une fonction permettant de récupérer les droit sur un fichier, avec le groupe auquel il appartient, etc...
J'écris actuellement un programme en C sous Linux. J'ai besoin d'une fonction qui rcupère le contenu de la variable PATH. J'ai trouvé la fonction getenv(), où il faut lui spécifier la variable d'environnement en paramètre. Mais elle me rend une chaine de caractère avec les chemin séparer par des deux points. Y a t-il une fonction plus adapaté ou chaque chemin est stocké dans une chaine de caractère, ou alors il faut que je me débrouille pour les décortiquer de cette chaine ?
ET j'aimerais aussi savoir si il existe une fonction permettant de récupérer les droit sur un fichier, avec le groupe auquel il appartient, etc...
A voir également:
- Fonction système langage c
- Restauration systeme windows 10 - Guide
- Fonction si et - Guide
- Langage ascii - Guide
- Vérificateur des fichiers système - Guide
- Langage binaire - Guide
4 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
4 août 2014 à 09:50
4 août 2014 à 09:50
Pas de fonctions plus adaptées.
En revanche, tu peux utiliser strtok() pour découper facilement ta chaîne.
Cdlt,
En revanche, tu peux utiliser strtok() pour découper facilement ta chaîne.
Cdlt,
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
struct stat stat_buf;
if ( stat( "File Name", &stat_buf) == -1)
{
exit (1);
}
printf("Permissions: %o\n", stat_buf.st_mode & 0777);
Source : https://answers.yahoo.com/question/index?qid=20071207091917AANbrGo
#include <sys/types.h>
#include <sys/stat.h>
struct stat stat_buf;
if ( stat( "File Name", &stat_buf) == -1)
{
exit (1);
}
printf("Permissions: %o\n", stat_buf.st_mode & 0777);
Source : https://answers.yahoo.com/question/index?qid=20071207091917AANbrGo
Twinuts
Messages postés
5375
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
14 juin 2023
2
4 août 2014 à 10:21
4 août 2014 à 10:21
Salut,
Question 1:
De mémoire il faut parser la chaîne retournée, soit avec strtok soit avec strsep:
Question 2:
Tu peux le faire avec 'stat':
Question 1:
De mémoire il faut parser la chaîne retournée, soit avec strtok soit avec strsep:
Question 2:
Tu peux le faire avec 'stat':
#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <sys/types.h> #include <grp.h> #include <pwd.h> int main(int argc, char** argv) { const char* filename = "/proc/cpuinfo"; struct stat buf; if(stat(filename, &buf) == -1) exit(1); printf("File name: %s\n", filename); printf("UID: %s (%d)\n", getpwuid(buf.st_uid)->pw_name, buf.st_uid); printf("GID: %s (%d)\n", getgrgid(buf.st_gid)->gr_name, buf.st_gid); printf("Mode: %o\n", buf.st_mode & 0777); return 0; }