checkm

domenica 3 giugno 2007

os.path.join in C

Da qualche settimana sto studiando C da un tutorial di K&R. Ho fatto vari pezzettini di codice per provare un po a fare quello che leggevo nel manuale e ovviamente li ho buttati tutti.
L'altro giorno Lethalman mi ha chiesto di fare un "algoritmo" che imitasse il comportamento di os.path.join che c'è in Python con il C però in modo portabile.

Su Python:

>>> os.path.join("/home/", "simone")
'/home/simone'
>>> os.path.join("/home/", "/simone")
'/simone'
>>>


Il mio: http://scaccom.altervista.org/files/downloads/path_join.c

Ho imitato al meglio il comportamento di quello originale però non son riuscito a far passare infiniti argomenti alla funzione come succede in Python:

>>> os.path.join("/home/", "simone/", "gnurilla/", "src/")
'/home/simone/gnurilla/src/'
>>>


Ho chiesto a Foobar e mi ha detto che c'è un modo ma è piuttosto scomodo e difficile. Si tratta di utilizzare va_start di stdarg.h . [man stdarg.h] Ho rifiutato l'idea e per ora preferisco passare un array come argomento. :-\

Nessun commento: