Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936

    directories e parametri

    Ho bisogno di realizzare una funzione in C che "pulisca" un path passatogli restituendo la forma piu' "corretta" ed abbreviata per scriverlo...
    Se ad esempio ho il path:
    "/boh/..//../../..//qualcosa/..///qualcosa/altro//.///.////file.f"
    Questa funzione dovrebbe pulirlo restituendo il path effettivo, in questo caso:
    "/qualcosa/altro/file.f"
    Ho gia' chiesto qualche giorno fa sul forum Programmazione se esistono gia' funzioni, macro o system call che se ne occpuano, ma nessuno ha risposto (se ovviamente ne conoscete qualcuna avvisatemi )

    Perche' posto qui' invece che su programmazione? Perche' gia' che ci sono vorrei effettuare anche un controllo sul path per sapere se contiene degli errori e vorrei sapere quali errori puo' contenere un path...

    Ad esempio:
    - ...Un path puo' contenere tutti i 256 caratteri ascii? Compresi tutti quelli non alfanumerici o non stampabili? Suppongo di no: quali non possono venire usati?
    - ...La lettera iniziale e finale di un file o directory puo' essere a sua volta un qualunque carattere?

    Inoltre avete da darmi qualche informazione che potrebbe creare problemi? Ad esempio il fatto che se mi trovo in "/" e provo ad andare in ".." rimango in "/"... Oppure il fatto che se trovo piu' slash affiancate devo considerarne una sola...






    Ho una seconda domanda che riguarda i parametri da passare ad un programma: se un programma accetta un parametro che richiede un argomento ( ad esempio "--size=$SIZE" ) e questo parametro venisse passato due volte ( ad esempio "./programma --size=100 --size=543" ), secondo voi (secondo logica o secondo le vostre conoscenze):
    - dovrebbe venire segnalato un errore?
    - il parametro non dovrebbe venire mai considerato?
    - dovrebbe venire accettato uno dei valori? E quale? Il primo, l'ultimo, quello nel mezzo ... ?
    - altro? (che so'... Dovrebbe venire calcolata una media? )
    Mi sono riscontrato con questo problema e non so quale sia la soluzione piu' corretta... Come si comporterebbe un programma GNU? Non me ne sta venendo in mente nessuno che richieda un parametro con valore... :master:
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  2. #2
    l'ora tarda fa brutti scherzi alle menti già sull'orlo della follia eh?

    allora per la prima cosa non saprei indicarti niente di già fatto, ma penso che non ci sia bisogno di troppe righe di c per farlo.

    per la seconda, io darei errore
    e se vuoi sapere come farebbe un programma GNU, usi getopt per prendere le opzioni così fa tutto lui

    @_=(115,-17,6);print+map{chr$_[$.=$_-$_]*$_**$.+++$_[$.]*$_**$.+++$_[$.]*$_**$.}$.-$...$#_

  3. #3

    Re: directories e parametri

    Originariamente inviato da /dev/null
    Ad esempio:
    - ...Un path puo' contenere tutti i 256 caratteri ascii?
    No: solo caratteri appartenenti al set standard di caratteri ASCII standard a 7 bit stampabili, escluso ovviamente '/'.
    Occhio all'espansione della shell se usi caratteri non alfanumerici (+ '_')
    - ...La lettera iniziale e finale di un file o directory puo' essere a sua volta un qualunque carattere?
    come sopra
    Inoltre avete da darmi qualche informazione che potrebbe creare problemi? Ad esempio il fatto che se mi trovo in "/" e provo ad andare in ".." rimango in "/"... Oppure il fatto che se trovo piu' slash affiancate devo considerarne una sola...
    Si, in / '..' e` un link alla directory stessa... Mi viene in mente che non sono ammessi link a directory facenti parte dello stesso sottoalbero, ma non credo sia di interesse
    Ho una seconda domanda che riguarda i parametri da passare ad un programma: se un programma accetta un parametro che richiede un argomento ( ad esempio "--size=$SIZE" ) e questo parametro venisse passato due volte ( ad esempio "./programma --size=100 --size=543" ), secondo voi (secondo logica o secondo le vostre conoscenze):
    Stai usando getopt, popt o cosa?
    1 dovrebbe venire segnalato un errore?
    2 il parametro non dovrebbe venire mai considerato?
    3 dovrebbe venire accettato uno dei valori? E quale? Il primo, l'ultimo, quello nel mezzo ... ?
    4 altro? (che so'... Dovrebbe venire calcolata una media? )
    1 -> direi proprio di no!
    2 -> neanche questa!
    3 -> di solito per convenzione (e secondo logica IMHO ) ogni successivo valore sovrascrive il predente...
    Mi sono riscontrato con questo problema e non so quale sia la soluzione piu' corretta... Come si comporterebbe un programma GNU? Non me ne sta venendo in mente nessuno che richieda un parametro con valore... :master:
    AFAIK funzionano come per '3' detto sopra
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.