Argumentos do Main [RESOLVIDO]

1. Argumentos do Main [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 30/01/2015 - 11:20h

Hey Guys

A comunidade estava parada e resolvi escrever algo , para quebrar o "gelo".

Estava vendo que alem dos argumentos básicos :

int main(int argc, char *argv[]) 


Esses 2 eu sei o que fazem,porém, parece que existe mais 2 :

int main(int argc, char *argv[], char *envp[]) 

E

int main(int argc, char *argv[], char *envp[], char *apple[]) 


O que esses argumentos a mais fazem ?

Grato




  


2. MELHOR RESPOSTA

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 23/02/2015 - 09:37h

Bom dia.

'envp' é uma lista de variáveis do ambiente. Se você omitir esse argumento, poderá acessar tais variáveis ambientes através da função getenv(), definida no padrão POSIX.

'apple', como o próprio nome sugere, é o quarto argumento disponível nas implementação C dos sistemas Apple - Max OS X e Darwin. O Mac OS X[1] tem código fechado, já o Darwin[2] tem código aberto. Eles passam informações arbitrárias para os programas - sistemas operacionais e entry points[3].


#include <stdio.h>

int main (int argc, char *argv[], char *envp[])
{
register int i;

for (i = 0; ; i++) {
if ( !envp[i] ) break;
else printf("enp: %s\n", envp[i]);
}

return 0;
}

* Nota: normalmente, costumo colocar o output dos programas, mas como esse é demasiadamente longo e sem importância, não vou colocar.

No seu Mac, você pode criar um programa em C baseado no programa acima pra ver o que o sistema passa para o programa. ;)
Espero ter ajudado,
Enzo Ferber
[]'s


*

[1]. Mac OS X: http://en.wikipedia.org/wiki/OS_X
[2]. Darwin: http://en.wikipedia.org/wiki/Darwin_(operating_system)
[3]. Entry point: http://en.wikipedia.org/wiki/Entry_point

3. Re: Argumentos do Main [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 25/02/2015 - 02:51h

Eu chuto que apple tem alguma coisa a ver com aquela empresa que vende computadores, telefones e tablets desnecessariamente caros.

envp é coisa do mundo UNIX (não sei até que ponto existe também no mundo Microsoft), usado para que o programa receba valores de variáveis de ambiente. Seu uso foi grandemente suplantado pelas funções getenv(), setenv() e putenv(), além do array global environ. Mas mesmo essa nova forma de utilização ainda é de uso praticamente restrito ao mundo UNIX. A única função portável, que funciona em qualquer ambiente para consultar variáveis de ambiente, é getenv().


4. Re: Argumentos do Main [RESOLVIDO]

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 25/02/2015 - 08:05h

paulo1205 escreveu:

Eu chuto que apple tem alguma coisa a ver com aquela empresa que vende computadores, telefones e tablets desnecessariamente caros.


HAHAHA! Eu não conseguiria descrever melhor!
Perfeito.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts