Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Cath env(p) inside a routine/module

4 réponses
Avatar
Pim
Hi all.
I want to get my environment, but inside a function that receive no
parameters from any call from the main function.

i mean some code that could catch environment other than access
to envp.

... if this is possible of course.

I thank you very much.

Pim.

4 réponses

Avatar
Benoit Izac
Bonjour,

le 12/06/2010 à 19:49, Pim a écrit dans le message
:

I want to get my environment, but inside a function that receive no
parameters from any call from the main function.

i mean some code that could catch environment other than access
to envp.

... if this is possible of course.



Pas sûr d'avoir bien compris...

#include <stdio.h>

int
main(void)
{
extern char **environ;
int i;

for (i = 0; environ[i]; i++)
printf("%sn", environ[i]);

return 0;
}

Sinon regarde du coté de getenv(3).
--
Benoit Izac
Avatar
Pim
Le Sat, 12 Jun 2010 20:04:06 +0200,
Benoit Izac disait ceci :
Bonjour,

le 12/06/2010 à 19:49, Pim a écrit dans le message
:

I want to get my environment, but inside a function that receive no
parameters from any call from the main function.

i mean some code that could catch environment other than access
to envp.

... if this is possible of course.



Pas sûr d'avoir bien compris...

#include <stdio.h>

int
main(void)
{
extern char **environ;
int i;

for (i = 0; environ[i]; i++)
printf("%sn", environ[i]);

return 0;
}

Sinon regarde du coté de getenv(3).
--
Benoit Izac



Bonjour et merci de me répondre.
En fait, je devais le poster sur le newgroup du C en anglais : 'comp.lang.c',
et me suis trompé de ng.

Dans l'exemple que tu me met .
**environ définit ou en externe?
ça fait partie de stdio.h?
je veux dire dans la libc?
bon je vais essayer ton code .
Si c'est le cas c'est ce qu'il me faut.
Sinon, il faut m'éclairer plus...

merçi.
Avatar
Benoit Izac
Bonjour,

le 12/06/2010 à 21:44, Pim a écrit dans le message
:

I want to get my environment, but inside a function that receive no
parameters from any call from the main function.

i mean some code that could catch environment other than access
to envp.

... if this is possible of course.



Pas sûr d'avoir bien compris...

#include <stdio.h>

int
main(void)
{
extern char **environ;
int i;

for (i = 0; environ[i]; i++)
printf("%sn", environ[i]);

return 0;
}

Sinon regarde du coté de getenv(3).



Dans l'exemple que tu me met .
**environ définit ou en externe?
ça fait partie de stdio.h?
je veux dire dans la libc?



En fait, lorsque j'ai vu tes entêtes (slrn), j'ai pensé que tu cherchais
quelque chose pour Unix. Dans ce cas, environ est définit par POSIX.
environ est initialisé lorsque tu rentres dans main() comme argc et
argv.

En revanche en C standard, il n'y a que getenv() définit dans stdlib.h
mais dans ce cas tu es obligé d'avoir un argument ce qui est en
contradiction avec ta demande initiale.

--
Benoit Izac
Avatar
Pim
Le Sat, 12 Jun 2010 22:17:00 +0200,
Benoit Izac disait ceci :
Bonjour,

le 12/06/2010 à 21:44, Pim a écrit dans le message
:

I want to get my environment, but inside a function that receive no
parameters from any call from the main function.

i mean some code that could catch environment other than access
to envp.

... if this is possible of course.



Pas sûr d'avoir bien compris...

#include <stdio.h>

int
main(void)
{
extern char **environ;
int i;

for (i = 0; environ[i]; i++)
printf("%sn", environ[i]);

return 0;
}

Sinon regarde du coté de getenv(3).



Dans l'exemple que tu me met .
**environ définit ou en externe?
ça fait partie de stdio.h?
je veux dire dans la libc?



En fait, lorsque j'ai vu tes entêtes (slrn), j'ai pensé que tu cherchais
quelque chose pour Unix. Dans ce cas, environ est définit par POSIX.
environ est initialisé lorsque tu rentres dans main() comme argc et
argv.

En revanche en C standard, il n'y a que getenv() définit dans stdlib.h
mais dans ce cas tu es obligé d'avoir un argument ce qui est en
contradiction avec ta demande initiale.



En effet je suis sous Linux Debian.
Donc je m'en suis sorti avec **environ qui
satisfait pleinement pour l'instant.

Je n'ai pas (encore) vu gentenv...
Merçi pour ton aide en tout cas.

--
Benoit Izac