Bonjour !
J'écris avec Ada sur GNU/Linux un programme faisant un appel à la fonction C importé gtrâce au pragma Import et à l'appel de sh avec l'argument 'c' la commande passée n'est pas "développé" ; J'évoque ici l'expansion du caractère jocker "asterics".
Pour que l'asterics soit interprété ; Je dois passer ma commande par l'intermédiare d'un autre appel à sh.
instruction courante :
[code=ada]
Errno := System("/usr/bin/sh -c """ & Os_Lib.Locate_Exec_On_Path(Command_Name(Handling.To_String(Text.all))).all & " " &
Normalize_Quoted_Argument(Handling.To_String(Text.all)(Command_Name(Handling.To_String(Text.all))'Length+2..Text'Last)) & " | /usr/bin/tee ./flush.txt""" & Character'Val(0));
[code]
Appel défectueux :
Appel fructueux :
Citation :
sh -c "rm test.txt*"
|
Je viens vous demander comment procéder pour interpréter l'asterics sans avoir à saisir un nouvel appel à "sh".
S'il vous plait ?
Merci.