Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-06-2007, 09:11   #1
pmhwp
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 453
Funzione dos in c per restituire path dove si trova eseguibile

Salve esiste una funzione in c o dos richiamabile in c che restituisca il path di dove si trova il file?

Grazie.
Ciao.
pmhwp è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 10:50   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Dipende da quale compilatore usi...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 11:05   #3
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Codice:
#include <stdio.h>

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

{
    int i=0,j;

    do
    {
	if(*(argv[0]+i)=='\\')
	    j=i;
    } while (*(argv[0]+i++)!=0x00);

    *(argv[0]+j)=0x00;

    printf("Il path dell'eseguibile e': %s",argv[0]);
}
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 11:18   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Purtroppo quello rende il path relativo...se ho l'eseguibile pippo.exe che si trova in c:\pluto\ e faccio:

x:\> c:
c:\> cd pluto
c:\pluto> pippo <-eseguo pippo

L'output del programma sopra sarà solo pippo...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 16:31   #5
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Quote:
Originariamente inviato da cionci Guarda i messaggi
Purtroppo quello rende il path relativo...se ho l'eseguibile pippo.exe che si trova in c:\pluto\ e faccio:

x:\> c:
c:\> cd pluto
c:\pluto> pippo <-eseguo pippo

L'output del programma sopra sarà solo pippo...
Col cavolo. Questo e' l'output che produce:

Codice:
C:\>CD PLUTO

C:\PLUTO>PIPPO.EXE
Il path dell'eseguibile e': C:\PLUTO
C:\PLUTO>
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 16:47   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Mah...io ho fatto una prova con mingw32 e mi restituisce solo pippo.exe...
Mi pare che lo stesso giochetto lo facesse in DOS vero con i compilatori della Borland...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 16:55   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 16:57   #8
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Quote:
Originariamente inviato da cionci Guarda i messaggi
Mah...io ho fatto una prova con mingw32 e mi restituisce solo pippo.exe...
Mi pare che lo stesso giochetto lo facesse in DOS vero con i compilatori della Borland...
Allego eseguibili prodotti da Borland C++ 3.1 (TEST1.COM - DOS16) e da OpenWatcom 1.6 (TEST2.EXE - WIN32), entrambi funzionanti.
Allegati
File Type: zip TEST.zip (19.5 KB, 0 visite)
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 16:57   #9
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Quote:
Originariamente inviato da cionci Guarda i messaggi
Devi munirti di un compilatore funzionante.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 17:14   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ha lo stesso comportamento del gcc di Linux...
Mi viene da pensare che non ci sia un comportamento ben definito dallo standard...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 17:19   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Comunque la mia prima risposta resta valida...
Quote:
Originariamente inviato da cionci Guarda i messaggi
Dipende da quale compilatore usi...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 17:31   #12
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Quote:
Originariamente inviato da cionci Guarda i messaggi
Comunque la mia prima risposta resta valida...
Che il sappia lo standard non definisce accuratamente il contenuto di argv[0], ad ogni modo l'autore della discussione cercava: "Funzione dos in c per restituire path dove si trova eseguibile". Ha specificato "DOS" e non Windows o Linux. Per DOS, che io sappia, argv[0] restituisce il path completo dell'eseguibile; e' comunque possibile che esista un compilatore C per DOS che non rispetti tale consuetudine, ma io non ne ho mai visti. Se comunque conosci un compilatore DOS con tale caratteristica mi piacerebbe dargli un'occhiata, percui ti sarei grata se me ne indicassi il nome. Grazie.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 17:49   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Io ti sto dicendo che quel comportamento non mi è nuovo...e mi sembra appunto di averlo incontrato ai tempi in cui lavoravo in DOS. Sinceramente non mi ricordo con quale compilatore.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 17:58   #14
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Non e' che ci siano tutti questi compilatori C per DOS, sia Borland che Watcom che Microsoft hanno sempre restituito il path completo con argv[0] (persino il Lattice C restituisce il path completo con argv[0]). Probabilmente lavoravi con qualche "astruso" compilatore C per DOS, sarebbe interessante se te ne ricordassi il nome.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2007, 21:00   #15
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Da quello che ho sempre notato, sia su Windows che su Linux, ciò che si ha in argv[0] è il path esattamente uguale a quello usato per lanciare l'applicazione.

Se lancio un pippo.exe con:

C:\prova\pippo.exe, avrò il path completo assoluto

..\pippo.exe, avrò ..\pippo.exe

e così via.

È chiaro che se si vuole avere il path assoluto dell'eseguibile si può: 1) Usare funzioni specifiche, es. GetModuleFileName() su Windows oppure 2) Determinare la directory corrente e ottenere il path assoluto "risolvendo" il path relativo combinato con la directory corrente.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
TP-Link porta Netgear in tribunale: camp...
2 portatili tuttofare a 499€: uno ha 32G...
HONOR prepara il suo top di gamma compat...
Sony WH-1000XM6 a un prezzo senza preced...
Borderlands 4: 2K Games rende gratis il ...
I 7 robot aspirapolvere più venduti del ...
Samsung Galaxy S26: il salto generaziona...
Caso Lo Wen-jen: Intel nega qualsiasi ut...
Portatili con 32GB e 40GB di RAM e 1TB S...
Prezzo dell'ittrio fuori controllo: perc...
Grazie a VLT è stata misurata dir...
Blue Origin annuncia un aerofreno ripieg...
Blue Origin annuncia una nuova versione ...
LG UltraFine evo 6K: il primo monitor al...
DJI cambia direzione: investe in Elegoo ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:43.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v