martedì 16 settembre 2008

Estensioni fantasma

Cari lettori so bhe sarete infuriati con me per il lungo periodo di aggiornamento ma, durante questi mesi, non è successo nulla di rilevante da riportare sul blog e quindi, con sommo dispiacere, non vi ho potuto allietare con le mie disavventure....

Ovviamente ho passato l'estate a programmare tutto per un "lavoretto" che sulla carta doveva prendere non più di 2-3 settimane ma che in realtà mi ha preso esattamente tutta l'estate, passata di conseguenza in università.

Verso la fine di agosto ricominciano a sbucare le prime anime coraggiose (ad agosto c'è una desolazione pari a quella del deserto del gobi) tra cui due miei compagni intenti a prepare un esame di programmazione...i quali ogni tanto approfittavano della mia clausura in laboratorio per risolvere qualche piccolo problema.
Ora non c'erano grossi problemi se non che la programmazione andava fatta in ambiente linux quando questi due miei compagni aborrano quel sistema operativo con tutte le loro forze. Stanno compilando il codice quando sulla shell vedo:

studente@studente:~$ gcc esercizio.c -o prova.exe

e da questa riga di codice nasce tutta la storia

IO: Scusa ma perchè metti -o prova.exe?
LORO: e ma perchè così diamo un nome all'eseguibile
IO: Sì lo so ma perchè .exe?
LORO: ehhh ma scusa è un eseguibile
IO: Lo sapete che siete su linux vero?
LORO: e quindi?
IO: e quindi non ha senso metti solo -o prova

lì per lì non hanno risposto e sono tornati ai loro esperimenti io, nel frattempo, aspettavo la fine di una simulazione (stavo testando un algoritmo di tracciamento oggetti che grazie al codice interpretato di Matlab mi prendeva circa un'ora di attesa). Mentre attendo giro per il laboratorio e do un'occhiata ai miei compagni quando mi cade l'occhio sulla shell dove campeggia fieramente:


studente@studente:~$ gcc esercizio2.c -o prova2.exe

IO: Ma ci rifate con sto .exe?
LORO: ehh ma è un eseguibile quindi .exe
IO: no perchè su linux il .exe non ha senso di esistere...quando fai gcc qualcosa.c di default ottieni un file che si chiama a.out se tu gli dai pippo.exe questo è il nome del file da eseguire quindi in realtà generi un file eseguibile che si chiama pippo.exe.out dove pippo.exe è il nome e out è l'estensione NON sei su $sitemaoperativocostosissimo chiaro???
LORO: eh ma sugli appunti di $compagnodicorso c'era -o prova.exe
IO: andiamo bene 'e pensare che lui l'ha pure passato sto esame' comunque ricordatevi che su Linux .exe non ha senso infatti se dai ./pippo.exe ti da errore...... tutto chiaro?

ovviamente non è esattamente finita lì prima che il dilemma dell'estensione fosse risolto, per arrivare alla fine della storia, dovete iterare l'ultima scena un altro paio di volte.

Morale della favola: se su un sistema operativo fai una cosa e funziona non è detto che questo vada bene su tutti i sistemi operativi....

Nessun commento: