Re: Langage C et répertoire home

2018-07-11 Par sujet Basile Starynkevitch



On 07/11/2018 02:55 PM, nicolas.pec...@laposte.net wrote:

Bonjour,

J'essaye de programmer un petit logiciel. Je veux que ce dernier créer 
un répertoire dans le home de l'utilisateur.


Malheureusement, le "~/" ne semble pas fonctionner

mkdir("~/toto");



Oui, le ~ est expansé par le shell. Dans ton programme il faut faire 
l'expansion equivalente (voir glob(7) 
), par exemple:


   char *path = NULL;
   char* home = getenv("HOME");
   if (!home)  exit(EXIT_FAILURE);
   if (asprintf(, "%s/toto", home) < 0) exit(EXIT_FAILURE);
   if (mkdir (path, 0750)) { perror(path); exit(EXIT_FAILURE); }

Cordialement
--
Basile STARYNKEVITCH   == http://starynkevitch.net/Basile
opinions are mine only - les opinions sont seulement miennes
Bourg La Reine, France



Re: Langage C et répertoire home

2018-07-11 Par sujet Eric Degenetais
Le 11 juillet 2018 à 14:55,  a écrit :
>
> Bonjour,
>
> J'essaye de programmer un petit logiciel. Je veux que ce dernier créer un
répertoire dans le home de l'utilisateur.
>
> Malheureusement, le "~/" ne semble pas fonctionner
>
> mkdir("~/toto");
>
bonjour,
la substitution de ~ par le chemin de la home est une fonction du shell.
Ici pas de shell (appel direct à la fonction mkdir) donc pas de
substitution.

Cordialement

__
Éric Dégenètais
Henix

http://www.henix.com
http://www.squashtest.org


Re: Langage C et répertoire home

2018-07-11 Par sujet Guillaume Clercin
Bonjour,

Le mercredi 11 juillet 2018, 14:55:04 CEST nicolas.pec...@laposte.net a 
écrit :
> Bonjour,
> 
> J'essaye de programmer un petit logiciel. Je veux que ce dernier créer
> un répertoire dans le home de l'utilisateur.
> 
> Malheureusement, le "~/" ne semble pas fonctionner
> 
> mkdir("~/toto");
Malheureusement, le tilde doit subir une expansion.
Voir la page man de wordexp(3).

Cordialement,
-- 
Guillaume Clercin

signature.asc
Description: This is a digitally signed message part.