|
|
|
![]() |
|
Strumenti |
![]() |
#1 | |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
[C-UNIX]come funziona lseek?
Sto facendo un banalissimo esercizio, ma sembra che non funzioni lseek...
Quote:
Mi stampa sempre il primo carattere di ogni file, e non l'ultimo come vorrei, in pratica sembra che lseek non sposti il "cursore" nel file, dove sbaglio? |
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
ho visto ke lseek restituisce -1 quindi immagino vada in errore...per quali motivi può andare in errore?
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1451
|
non sono sicuro ma se fai
lseek(fd,-2,sek_end) ed ammesso che il char sia 2 byte, dovrebbe spostarsi alla fine del file, prima dell'ultimo carattere.
__________________
Ciao ~ZeRO sTrEsS~ |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1451
|
Quote:
In più puoi usare perror per scoprire di che errore si tratta.
__________________
Ciao ~ZeRO sTrEsS~ |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
il file viene aperto, in quanto riesco anche a leggerne i caratteri.
Ho provato anche con SEEK_END ma mi da sempre -1. Come si usa perror? |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Capito come si usa perror, mi da invalid argument...
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1451
|
forse perchè gli passi 0L?
Metti 0, e per prova puoi usare pure seek_cur ![]()
__________________
Ciao ~ZeRO sTrEsS~ |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Nulla da fare...potrebbe essere che sto usando cygwin e non sono veramente in ambiente unix?
Però è strano...invalid argument è un errore ben preciso, e a me sembra di averglieli passati bene gli argomenti. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Nessun'altra idea?
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:43.