--- "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/