[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: alternatives, which & gcc vs. g77



Il giorno ven, 06/05/2005 alle 11.32 +0200, Dot Deb ha scritto:
> ovviamente
> which f77 -> /usb/bin/f77 -> /etc/alternatives/f77 -> /usr/bin/g77
> (che poi e` sempre g77-3.3, cosi` come gcc e` gcc-3.3)
> 
> Qualcuno me la sa spiegare?

Non so il perchè del comportamento nel caso specifico, ma posso
spiegarti il meccanismo: il nome dell'eseguibile è disponibile nei
programmi come primo argomento sulla linea di comando (cioè tipicamente
argv[0]) quindi da quello un programma può sapere come è stato invocato,
segue un esempio:

vincenzo@ronzinante:~$ echo $0
bash
vincenzo@ronzinante:~$ ln -sf /bin/bash ciccio
vincenzo@ronzinante:~$ ./ciccio
vincenzo@ronzinante:~$ echo $0
./ciccio

in definitiva il fatto di lanciare un programma direttamente o tramite
un link è "osservabile" dal programma medesimo, tanto è vero che...

vincenzo@ronzinante:~$ ls --help|head -n 1
Uso: ls [OPZIONE]... [FILE]...
vincenzo@ronzinante:~$ ln -sf /bin/ls ./ciccio
vincenzo@ronzinante:~$ ./ciccio --help|head -n 1
Uso: ./ciccio [OPZIONE]... [FILE]...
     ^^^^^^^^

Ciao

Vincenzo




Reply to: