--- "Malita, Florin" <[EMAIL PROTECTED]>
wrote:

> Din pacate env["_"] nu contine calea
> absoluta/completa asa cum vrea omul
> ci acelasi lucru ca si argv[0]:
> 
> [EMAIL PROTECTED] ~]# cd /bin && ./awk 'BEGIN {print
> ENVIRON["_"]}'
> ./awk
> 

niciodata sa nu te bazezi pe variabilele de env. Pot
fi controlate de user.

> Mai gasesti informatia respectiva in /proc/self/maps
> dar e mai incalcit
> de extras si nu prea are sens.
> 
> Cel mai simplu e un readlink("/proc/self/exe"...)
> dar daca iti pasa de
> portabilitate probabil merita sa "muncesti" un pic
> cu getcwd() & argv
> [0].
> 
getcwd se bazeaza pe un syscall, iar cand acesta nu
este available citeste /proc/self/cwd. 
Pe argv[0] sa nu te bazezi niciodata, ca si asta poate
fi controlat de user (si poate fi facut NULL !!!).

Mini-challenge:

int main(int argc, char** argv) {
   if (argc == 0) printf ("You won!\n");
    else printf ("You loose!\n");
  return EXIT_SUCCESS;
}

Cu alte cuvinte getcwd nu este portabil. Singura
solutie admisibila:
#if defined _WIN32
  .... ::GetWorkingDirectory() ...
#elsif defined _LINUX
  .... getcwd() ....
#end



Best regards,
DK

> On Tue, 2004-11-30 at 15:36 -0500, Quamis wrote:
> > /proc/self ar fi o ch....nu stiu dece nu vrei sal
> folosesti... 
> > in bash si nu numai (eviroment variables... ) ai
> "_" care spune ce
> > vrei tu.. 
> > ex:  
> > bash-2.05b# env 
> > CPLUS_INCLUDE_PATH=/usr/lib/qt/include 
> > ...bla bla bla bla... 
> > OLDPWD=/root 
> > _=/usr/bin/env
> > 
> > 
> > pe tine tear interesa ch asta de sus, desi nu stiu
> daca simti nevoia 
> > sa cauti prin env...da e optiunea ta
> > 
> > argv[0] este standard, chiar recomandabil.  
> > poate vrei sa spui si dece nu iti plac metodele
> astea
> > 
> > 
> > On Tue, 30 Nov 2004 14:31:01 +0200, Sami POTIRCA 
> > <[EMAIL PROTECTED]> wrote: 
> > > Am un mic programel in C si as vrea sa aflu, din
> acest program,
> > calea 
> > > completa catre imaginea ce a fost executata. 
> > > In afara de citirea linkului /proc/<pid>/exe si
> combinarea lui argv
> > [0] 
> > > cu getcwd/$PATH, exista si alta metoda? Si daca
> da, care? 
> > >  
> > > -- 
> > > This message was scanned for spam and viruses by
> BitDefender 
> > > For more information please visit
> http://www.bitdefender.com/ 
> > >  
> > > --- 
> > > Detalii despre listele noastre de mail:
> http://www.lug.ro/ 
> > >  
> > > 
> > 
> > 
> > --  
> >
> --------------------------------------------------- 
> > ----THE END of this transmission----
> > 
> > ---  
> > Detalii despre listele noastre de mail:
> http://www.lug.ro/
> > 
> 
> --- 
> Detalii despre listele noastre de mail:
> http://www.lug.ro/
> 
> 
> 



                
__________________________________ 
Do you Yahoo!? 
The all-new My Yahoo! - What will yours do?
http://my.yahoo.com 

--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui