Eh bien figurez-vous que, lancé avec /usr/bin/urxvt, toutes les lignes du
.Xresources sont honorées, tandis qu'avec
/{usr/bin,etc/alternatives}/x-terminal-emulator, les deux dernières lignes
[fautives] sont ignorées (je n'ai que les couleurs par défaut).
Eh bien figurez-vous que, lancé avec /usr/bin/urxvt, toutes les lignes du
.Xresources sont honorées, tandis qu'avec
/{usr/bin,etc/alternatives}/x-terminal-emulator, les deux dernières lignes
[fautives] sont ignorées (je n'ai que les couleurs par défaut).
Eh bien figurez-vous que, lancé avec /usr/bin/urxvt, toutes les lignes du
.Xresources sont honorées, tandis qu'avec
/{usr/bin,etc/alternatives}/x-terminal-emulator, les deux dernières lignes
[fautives] sont ignorées (je n'ai que les couleurs par défaut).
Salut à vous de la liste,
Un petit truc m'échappe et, à vot' bon coeur, j'aimerais mieux comprendre.
J'ai :
/usr/bin/x-terminal-emulator@
-> /etc/alternatives/x-terminal-emulator@
-> /usr/bin/urxvt*
Donc, si je ne m'abuse, lancer urxvt à l'aide des liens symboliques ou
directement du fichier /usr/bin/urxvt devrait être strictement équivalent,
non ?! Or, j'ai un petit ~/.Xresources :
!--
URxvt*.transparent: true
URxvt*.shading: 100
URxvt.scrollBar:false
URxvt*internalborder: 6
urxvt*foreground: #f2f2f2
urxvt*background: #101010
!--
Où l'on voit que le nom de la ressource est mal orthographié sur les
deux dernières entrées (urxvt au lieu de URxvt).
Eh bien figurez-vous que, lancé avec /usr/bin/urxvt, toutes les lignes du
.Xresources sont honorées, tandis qu'avec
/{usr/bin,etc/alternatives}/x-terminal-emulator, les deux dernières lignes
[fautives] sont ignorées (je n'ai que les couleurs par défaut).
En corrigeant mon .Xresources s/ur/UR tout rentre dans l'ordre... mais cet
ordre est soudain devenu obscur à mes yeux.
PS Expérience faite sur une Sid à jour avec Awesome. Les liens symboliques ont
été générés par «update-alternatives --config x-terminal-emulator».
Salut à vous de la liste,
Un petit truc m'échappe et, à vot' bon coeur, j'aimerais mieux comprendre.
J'ai :
/usr/bin/x-terminal-emulator@
-> /etc/alternatives/x-terminal-emulator@
-> /usr/bin/urxvt*
Donc, si je ne m'abuse, lancer urxvt à l'aide des liens symboliques ou
directement du fichier /usr/bin/urxvt devrait être strictement équivalent,
non ?! Or, j'ai un petit ~/.Xresources :
!--
URxvt*.transparent: true
URxvt*.shading: 100
URxvt.scrollBar:false
URxvt*internalborder: 6
urxvt*foreground: #f2f2f2
urxvt*background: #101010
!--
Où l'on voit que le nom de la ressource est mal orthographié sur les
deux dernières entrées (urxvt au lieu de URxvt).
Eh bien figurez-vous que, lancé avec /usr/bin/urxvt, toutes les lignes du
.Xresources sont honorées, tandis qu'avec
/{usr/bin,etc/alternatives}/x-terminal-emulator, les deux dernières lignes
[fautives] sont ignorées (je n'ai que les couleurs par défaut).
En corrigeant mon .Xresources s/ur/UR tout rentre dans l'ordre... mais cet
ordre est soudain devenu obscur à mes yeux.
PS Expérience faite sur une Sid à jour avec Awesome. Les liens symboliques ont
été générés par «update-alternatives --config x-terminal-emulator».
Salut à vous de la liste,
Un petit truc m'échappe et, à vot' bon coeur, j'aimerais mieux comprendre.
J'ai :
/usr/bin/x-terminal-emulator@
-> /etc/alternatives/x-terminal-emulator@
-> /usr/bin/urxvt*
Donc, si je ne m'abuse, lancer urxvt à l'aide des liens symboliques ou
directement du fichier /usr/bin/urxvt devrait être strictement équivalent,
non ?! Or, j'ai un petit ~/.Xresources :
!--
URxvt*.transparent: true
URxvt*.shading: 100
URxvt.scrollBar:false
URxvt*internalborder: 6
urxvt*foreground: #f2f2f2
urxvt*background: #101010
!--
Où l'on voit que le nom de la ressource est mal orthographié sur les
deux dernières entrées (urxvt au lieu de URxvt).
Eh bien figurez-vous que, lancé avec /usr/bin/urxvt, toutes les lignes du
.Xresources sont honorées, tandis qu'avec
/{usr/bin,etc/alternatives}/x-terminal-emulator, les deux dernières lignes
[fautives] sont ignorées (je n'ai que les couleurs par défaut).
En corrigeant mon .Xresources s/ur/UR tout rentre dans l'ordre... mais cet
ordre est soudain devenu obscur à mes yeux.
PS Expérience faite sur une Sid à jour avec Awesome. Les liens symboliques ont
été générés par «update-alternatives --config x-terminal-emulator».
On 04/10/2013 00:29, Alexandre Hoïde wrote:Salut à vous de la liste,
Un petit truc m'échappe et, à vot' bon coeur, j'aimerais mieux
comprendre.
J'ai :
/usr/bin/x-terminal-emulator@
-> /etc/alternatives/x-terminal-emulator@
-> /usr/bin/urxvt*
Donc, si je ne m'abuse, lancer urxvt à l'aide des liens symboliques ou
directement du fichier /usr/bin/urxvt devrait être strictement
équivalent,
non ?! Or, j'ai un petit ~/.Xresources :
!--
URxvt*.transparent: true
URxvt*.shading: 100
URxvt.scrollBar:false
URxvt*internalborder: 6
urxvt*foreground: #f2f2f2
urxvt*background: #101010
!--
Où l'on voit que le nom de la ressource est mal orthographié sur les
deux dernières entrées (urxvt au lieu de URxvt).
Eh bien figurez-vous que, lancé avec /usr/bin/urxvt, toutes les lignes du
.Xresources sont honorées, tandis qu'avec
/{usr/bin,etc/alternatives}/x-terminal-emulator, les deux dernières
lignes
[fautives] sont ignorées (je n'ai que les couleurs par défaut).
En corrigeant mon .Xresources s/ur/UR tout rentre dans l'ordre... mais
cet
ordre est soudain devenu obscur à mes yeux.
PS Expérience faite sur une Sid à jour avec Awesome. Les liens
symboliques ont
été générés par «update-alternatives --config x-terminal-emulator».
Bonjour
A titre informatif, un programme peut accéder par la pile Linux (en C
par args[0]) à la commande par lequel il est lancé. Autrement dit le
programme "sait" s'il a été lancé par un alias, un lien symbolique ou
directement.
On 04/10/2013 00:29, Alexandre Hoïde wrote:
Salut à vous de la liste,
Un petit truc m'échappe et, à vot' bon coeur, j'aimerais mieux
comprendre.
J'ai :
/usr/bin/x-terminal-emulator@
-> /etc/alternatives/x-terminal-emulator@
-> /usr/bin/urxvt*
Donc, si je ne m'abuse, lancer urxvt à l'aide des liens symboliques ou
directement du fichier /usr/bin/urxvt devrait être strictement
équivalent,
non ?! Or, j'ai un petit ~/.Xresources :
!--
URxvt*.transparent: true
URxvt*.shading: 100
URxvt.scrollBar:false
URxvt*internalborder: 6
urxvt*foreground: #f2f2f2
urxvt*background: #101010
!--
Où l'on voit que le nom de la ressource est mal orthographié sur les
deux dernières entrées (urxvt au lieu de URxvt).
Eh bien figurez-vous que, lancé avec /usr/bin/urxvt, toutes les lignes du
.Xresources sont honorées, tandis qu'avec
/{usr/bin,etc/alternatives}/x-terminal-emulator, les deux dernières
lignes
[fautives] sont ignorées (je n'ai que les couleurs par défaut).
En corrigeant mon .Xresources s/ur/UR tout rentre dans l'ordre... mais
cet
ordre est soudain devenu obscur à mes yeux.
PS Expérience faite sur une Sid à jour avec Awesome. Les liens
symboliques ont
été générés par «update-alternatives --config x-terminal-emulator».
Bonjour
A titre informatif, un programme peut accéder par la pile Linux (en C
par args[0]) à la commande par lequel il est lancé. Autrement dit le
programme "sait" s'il a été lancé par un alias, un lien symbolique ou
directement.
On 04/10/2013 00:29, Alexandre Hoïde wrote:Salut à vous de la liste,
Un petit truc m'échappe et, à vot' bon coeur, j'aimerais mieux
comprendre.
J'ai :
/usr/bin/x-terminal-emulator@
-> /etc/alternatives/x-terminal-emulator@
-> /usr/bin/urxvt*
Donc, si je ne m'abuse, lancer urxvt à l'aide des liens symboliques ou
directement du fichier /usr/bin/urxvt devrait être strictement
équivalent,
non ?! Or, j'ai un petit ~/.Xresources :
!--
URxvt*.transparent: true
URxvt*.shading: 100
URxvt.scrollBar:false
URxvt*internalborder: 6
urxvt*foreground: #f2f2f2
urxvt*background: #101010
!--
Où l'on voit que le nom de la ressource est mal orthographié sur les
deux dernières entrées (urxvt au lieu de URxvt).
Eh bien figurez-vous que, lancé avec /usr/bin/urxvt, toutes les lignes du
.Xresources sont honorées, tandis qu'avec
/{usr/bin,etc/alternatives}/x-terminal-emulator, les deux dernières
lignes
[fautives] sont ignorées (je n'ai que les couleurs par défaut).
En corrigeant mon .Xresources s/ur/UR tout rentre dans l'ordre... mais
cet
ordre est soudain devenu obscur à mes yeux.
PS Expérience faite sur une Sid à jour avec Awesome. Les liens
symboliques ont
été générés par «update-alternatives --config x-terminal-emulator».
Bonjour
A titre informatif, un programme peut accéder par la pile Linux (en C
par args[0]) à la commande par lequel il est lancé. Autrement dit le
programme "sait" s'il a été lancé par un alias, un lien symbolique ou
directement.
Philippe Deleval wrote:
>A titre informatif, un programme peut accéder par la pile Linux (en C
>par args[0]) à la commande par lequel il est lancé. Autrement dit le
>programme "sait" s'il a été lancé par un alias, un lien symbolique ou
>directement.
Attention, ça n'est pas portable. Je ne sais plus sous quel Unix
j'ai pu constater que cela ne fonctionnait pas... et je pense que
c'est à la discrétion du shell, pas de l'OS. Je suis même déjà tombé
sur un OS où toute la ligne de commande, arguments compris, se
trouvait dans argv[0] et un autre qui omettait le nom de la commande
et dont argv[0] contenait directement le premier argument !
Philippe Deleval wrote:
>A titre informatif, un programme peut accéder par la pile Linux (en C
>par args[0]) à la commande par lequel il est lancé. Autrement dit le
>programme "sait" s'il a été lancé par un alias, un lien symbolique ou
>directement.
Attention, ça n'est pas portable. Je ne sais plus sous quel Unix
j'ai pu constater que cela ne fonctionnait pas... et je pense que
c'est à la discrétion du shell, pas de l'OS. Je suis même déjà tombé
sur un OS où toute la ligne de commande, arguments compris, se
trouvait dans argv[0] et un autre qui omettait le nom de la commande
et dont argv[0] contenait directement le premier argument !
Philippe Deleval wrote:
>A titre informatif, un programme peut accéder par la pile Linux (en C
>par args[0]) à la commande par lequel il est lancé. Autrement dit le
>programme "sait" s'il a été lancé par un alias, un lien symbolique ou
>directement.
Attention, ça n'est pas portable. Je ne sais plus sous quel Unix
j'ai pu constater que cela ne fonctionnait pas... et je pense que
c'est à la discrétion du shell, pas de l'OS. Je suis même déjà tombé
sur un OS où toute la ligne de commande, arguments compris, se
trouvait dans argv[0] et un autre qui omettait le nom de la commande
et dont argv[0] contenait directement le premier argument !
On Fri, Oct 04, 2013 at 12:50:35PM +0200, BERTRAND Joël wrote:
[â¦]
> Attention, ça n'est pas portable. Je ne sais plus sous quel
> Unix
> j'ai pu constater que cela ne fonctionnait pas... et je
> pense que c'est à la discrétion du shell, pas de l'OS. Je
> suis même déjà tombé sur un OS où toute la ligne de
> commande, arguments compris, se trouvait dans argv[0] et un
> autre qui omettait le nom de la commande et dont argv[0]
> contenait directement le premier argument !
On Fri, Oct 04, 2013 at 12:50:35PM +0200, BERTRAND Joël wrote:
[â¦]
> Attention, ça n'est pas portable. Je ne sais plus sous quel
> Unix
> j'ai pu constater que cela ne fonctionnait pas... et je
> pense que c'est à la discrétion du shell, pas de l'OS. Je
> suis même déjà tombé sur un OS où toute la ligne de
> commande, arguments compris, se trouvait dans argv[0] et un
> autre qui omettait le nom de la commande et dont argv[0]
> contenait directement le premier argument !
On Fri, Oct 04, 2013 at 12:50:35PM +0200, BERTRAND Joël wrote:
[â¦]
> Attention, ça n'est pas portable. Je ne sais plus sous quel
> Unix
> j'ai pu constater que cela ne fonctionnait pas... et je
> pense que c'est à la discrétion du shell, pas de l'OS. Je
> suis même déjà tombé sur un OS où toute la ligne de
> commande, arguments compris, se trouvait dans argv[0] et un
> autre qui omettait le nom de la commande et dont argv[0]
> contenait directement le premier argument !
[Je réponds au précédent mais j’ai perdu le courriel…]
Le vendredi 4 octobre 2013 15:18:43 Alexandre Hoïde a écrit :On Fri, Oct 04, 2013 at 12:50:35PM +0200, BERTRAND Joël wrote:
[…]Attention, ça n'est pas portable. Je ne sais plus sous quel
Unix
j'ai pu constater que cela ne fonctionnait pas... et je
pense que c'est à la discrétion du shell, pas de l'OS. Je
suis même déjà tombé sur un OS où toute la ligne de
commande, arguments compris, se trouvait dans argv[0] et un
autre qui omettait le nom de la commande et dont argv[0]
contenait directement le premier argument !
C’est un standard du langage C¹.
Mauvais compilateur/libc, changer compilateur/libc.
¹ Cf. section 5.1.2.2.1 de la version C99 ( http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf p.11, 23e page du
PDF).
[Je réponds au précédent mais j’ai perdu le courriel…]
Le vendredi 4 octobre 2013 15:18:43 Alexandre Hoïde a écrit :
On Fri, Oct 04, 2013 at 12:50:35PM +0200, BERTRAND Joël wrote:
[…]
Attention, ça n'est pas portable. Je ne sais plus sous quel
Unix
j'ai pu constater que cela ne fonctionnait pas... et je
pense que c'est à la discrétion du shell, pas de l'OS. Je
suis même déjà tombé sur un OS où toute la ligne de
commande, arguments compris, se trouvait dans argv[0] et un
autre qui omettait le nom de la commande et dont argv[0]
contenait directement le premier argument !
C’est un standard du langage C¹.
Mauvais compilateur/libc, changer compilateur/libc.
¹ Cf. section 5.1.2.2.1 de la version C99 ( http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf p.11, 23e page du
PDF).
[Je réponds au précédent mais j’ai perdu le courriel…]
Le vendredi 4 octobre 2013 15:18:43 Alexandre Hoïde a écrit :On Fri, Oct 04, 2013 at 12:50:35PM +0200, BERTRAND Joël wrote:
[…]Attention, ça n'est pas portable. Je ne sais plus sous quel
Unix
j'ai pu constater que cela ne fonctionnait pas... et je
pense que c'est à la discrétion du shell, pas de l'OS. Je
suis même déjà tombé sur un OS où toute la ligne de
commande, arguments compris, se trouvait dans argv[0] et un
autre qui omettait le nom de la commande et dont argv[0]
contenait directement le premier argument !
C’est un standard du langage C¹.
Mauvais compilateur/libc, changer compilateur/libc.
¹ Cf. section 5.1.2.2.1 de la version C99 ( http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf p.11, 23e page du
PDF).
[â¦]
Câest un standard du langage C¹.
Mauvais compilateur/libc, changer compilateur/libc.
¹ Cf. section 5.1.2.2.1 de la version C99 (
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
p.11, 23e page du PDF).
[â¦]
Câest un standard du langage C¹.
Mauvais compilateur/libc, changer compilateur/libc.
¹ Cf. section 5.1.2.2.1 de la version C99 (
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
p.11, 23e page du PDF).
[â¦]
Câest un standard du langage C¹.
Mauvais compilateur/libc, changer compilateur/libc.
¹ Cf. section 5.1.2.2.1 de la version C99 (
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
p.11, 23e page du PDF).
Sylvain L. Sauvage wrote:[Je réponds au précédent mais j’ai perdu le courriel…]
Le vendredi 4 octobre 2013 15:18:43 Alexandre Hoïde a écrit :On Fri, Oct 04, 2013 at 12:50:35PM +0200, BERTRAND Joël wrote:
[…]Attention, ça n'est pas portable. Je ne sais plus sous quel
Unix
j'ai pu constater que cela ne fonctionnait pas... et je
pense que c'est à la discrétion du shell, pas de l'OS. Je
suis même déjà tombé sur un OS où toute la ligne de
commande, arguments compris, se trouvait dans argv[0] et un
autre qui omettait le nom de la commande et dont argv[0]
contenait directement le premier argument !
C’est un standard du langage C¹.
Mauvais compilateur/libc, changer compilateur/libc.
¹ Cf. section 5.1.2.2.1 de la version C99 (
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf p.11, 23e
page du
PDF).
Le compilo est un gcc récent avec un linux embarqué sur je ne sais
plus quelle architecture. Et la libc était une eglibc des familles.
D'un autre côté, je suis assez d'accord avec toi, c'est une très
mauvaise libc :-P
Entre-nous, c'est le shell qui empile ça grçace à un appel de la
libc avant l'appel au main() (dans le cas du C). Si le shell décide de
tout mettre dans argv[0] parce que ça lui fait plaisir, je ne vois pas
trop ce que le compilo pourrait faire...
Cordialement,
JKB
Sylvain L. Sauvage wrote:
[Je réponds au précédent mais j’ai perdu le courriel…]
Le vendredi 4 octobre 2013 15:18:43 Alexandre Hoïde a écrit :
On Fri, Oct 04, 2013 at 12:50:35PM +0200, BERTRAND Joël wrote:
[…]
Attention, ça n'est pas portable. Je ne sais plus sous quel
Unix
j'ai pu constater que cela ne fonctionnait pas... et je
pense que c'est à la discrétion du shell, pas de l'OS. Je
suis même déjà tombé sur un OS où toute la ligne de
commande, arguments compris, se trouvait dans argv[0] et un
autre qui omettait le nom de la commande et dont argv[0]
contenait directement le premier argument !
C’est un standard du langage C¹.
Mauvais compilateur/libc, changer compilateur/libc.
¹ Cf. section 5.1.2.2.1 de la version C99 (
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf p.11, 23e
page du
PDF).
Le compilo est un gcc récent avec un linux embarqué sur je ne sais
plus quelle architecture. Et la libc était une eglibc des familles.
D'un autre côté, je suis assez d'accord avec toi, c'est une très
mauvaise libc :-P
Entre-nous, c'est le shell qui empile ça grçace à un appel de la
libc avant l'appel au main() (dans le cas du C). Si le shell décide de
tout mettre dans argv[0] parce que ça lui fait plaisir, je ne vois pas
trop ce que le compilo pourrait faire...
Cordialement,
JKB
Sylvain L. Sauvage wrote:[Je réponds au précédent mais j’ai perdu le courriel…]
Le vendredi 4 octobre 2013 15:18:43 Alexandre Hoïde a écrit :On Fri, Oct 04, 2013 at 12:50:35PM +0200, BERTRAND Joël wrote:
[…]Attention, ça n'est pas portable. Je ne sais plus sous quel
Unix
j'ai pu constater que cela ne fonctionnait pas... et je
pense que c'est à la discrétion du shell, pas de l'OS. Je
suis même déjà tombé sur un OS où toute la ligne de
commande, arguments compris, se trouvait dans argv[0] et un
autre qui omettait le nom de la commande et dont argv[0]
contenait directement le premier argument !
C’est un standard du langage C¹.
Mauvais compilateur/libc, changer compilateur/libc.
¹ Cf. section 5.1.2.2.1 de la version C99 (
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf p.11, 23e
page du
PDF).
Le compilo est un gcc récent avec un linux embarqué sur je ne sais
plus quelle architecture. Et la libc était une eglibc des familles.
D'un autre côté, je suis assez d'accord avec toi, c'est une très
mauvaise libc :-P
Entre-nous, c'est le shell qui empile ça grçace à un appel de la
libc avant l'appel au main() (dans le cas du C). Si le shell décide de
tout mettre dans argv[0] parce que ça lui fait plaisir, je ne vois pas
trop ce que le compilo pourrait faire...
Cordialement,
JKB
Le 04/10/2013 16:03, BERTRAND Joël a écrit :Sylvain L. Sauvage wrote:[Je réponds au précédent mais j’ai perdu le courriel…]
Le vendredi 4 octobre 2013 15:18:43 Alexandre Hoïde a écrit :On Fri, Oct 04, 2013 at 12:50:35PM +0200, BERTRAND Joël wrote:
[…]Attention, ça n'est pas portable. Je ne sais plus sous quel
Unix
j'ai pu constater que cela ne fonctionnait pas... et je
pense que c'est à la discrétion du shell, pas de l'OS. Je
suis même déjà tombé sur un OS où toute la ligne de
commande, arguments compris, se trouvait dans argv[0] et un
autre qui omettait le nom de la commande et dont argv[0]
contenait directement le premier argument !
C’est un standard du langage C¹.
Mauvais compilateur/libc, changer compilateur/libc.
¹ Cf. section 5.1.2.2.1 de la version C99 (
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf p.11, 23e
page du
PDF).
Le compilo est un gcc récent avec un linux embarqué sur je ne sais
plus quelle architecture. Et la libc était une eglibc des familles.
D'un autre côté, je suis assez d'accord avec toi, c'est une très
mauvaise libc :-P
Entre-nous, c'est le shell qui empile ça grçace à un appel de la
libc avant l'appel au main() (dans le cas du C). Si le shell décide de
tout mettre dans argv[0] parce que ça lui fait plaisir, je ne vois pas
trop ce que le compilo pourrait faire...
Cordialement,
JKB
Tu dois donc avoir un C free-standing, plutôt qu'un C hosted. Dans ce
cas il n'y a de fait pas de libc, mais une lib qui n'implémente que
partiellement les fonctionalités de la libc.
Le 04/10/2013 16:03, BERTRAND Joël a écrit :
Sylvain L. Sauvage wrote:
[Je réponds au précédent mais j’ai perdu le courriel…]
Le vendredi 4 octobre 2013 15:18:43 Alexandre Hoïde a écrit :
On Fri, Oct 04, 2013 at 12:50:35PM +0200, BERTRAND Joël wrote:
[…]
Attention, ça n'est pas portable. Je ne sais plus sous quel
Unix
j'ai pu constater que cela ne fonctionnait pas... et je
pense que c'est à la discrétion du shell, pas de l'OS. Je
suis même déjà tombé sur un OS où toute la ligne de
commande, arguments compris, se trouvait dans argv[0] et un
autre qui omettait le nom de la commande et dont argv[0]
contenait directement le premier argument !
C’est un standard du langage C¹.
Mauvais compilateur/libc, changer compilateur/libc.
¹ Cf. section 5.1.2.2.1 de la version C99 (
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf p.11, 23e
page du
PDF).
Le compilo est un gcc récent avec un linux embarqué sur je ne sais
plus quelle architecture. Et la libc était une eglibc des familles.
D'un autre côté, je suis assez d'accord avec toi, c'est une très
mauvaise libc :-P
Entre-nous, c'est le shell qui empile ça grçace à un appel de la
libc avant l'appel au main() (dans le cas du C). Si le shell décide de
tout mettre dans argv[0] parce que ça lui fait plaisir, je ne vois pas
trop ce que le compilo pourrait faire...
Cordialement,
JKB
Tu dois donc avoir un C free-standing, plutôt qu'un C hosted. Dans ce
cas il n'y a de fait pas de libc, mais une lib qui n'implémente que
partiellement les fonctionalités de la libc.
Le 04/10/2013 16:03, BERTRAND Joël a écrit :Sylvain L. Sauvage wrote:[Je réponds au précédent mais j’ai perdu le courriel…]
Le vendredi 4 octobre 2013 15:18:43 Alexandre Hoïde a écrit :On Fri, Oct 04, 2013 at 12:50:35PM +0200, BERTRAND Joël wrote:
[…]Attention, ça n'est pas portable. Je ne sais plus sous quel
Unix
j'ai pu constater que cela ne fonctionnait pas... et je
pense que c'est à la discrétion du shell, pas de l'OS. Je
suis même déjà tombé sur un OS où toute la ligne de
commande, arguments compris, se trouvait dans argv[0] et un
autre qui omettait le nom de la commande et dont argv[0]
contenait directement le premier argument !
C’est un standard du langage C¹.
Mauvais compilateur/libc, changer compilateur/libc.
¹ Cf. section 5.1.2.2.1 de la version C99 (
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf p.11, 23e
page du
PDF).
Le compilo est un gcc récent avec un linux embarqué sur je ne sais
plus quelle architecture. Et la libc était une eglibc des familles.
D'un autre côté, je suis assez d'accord avec toi, c'est une très
mauvaise libc :-P
Entre-nous, c'est le shell qui empile ça grçace à un appel de la
libc avant l'appel au main() (dans le cas du C). Si le shell décide de
tout mettre dans argv[0] parce que ça lui fait plaisir, je ne vois pas
trop ce que le compilo pourrait faire...
Cordialement,
JKB
Tu dois donc avoir un C free-standing, plutôt qu'un C hosted. Dans ce
cas il n'y a de fait pas de libc, mais une lib qui n'implémente que
partiellement les fonctionalités de la libc.