 |
Spiderweb |
Programmazione c |
09-04-2003 08:01 |
|
 |
Spiderweb |
.fedelissimo.
Registered: Oct 2002
Posts: 51 (0.01 al dì)
Location: Vigevano
Corso: Comunicazione Digitale
Anno: 1 specialistica
Time Online: 12:50:04: [...]
Status: Offline
Edit | Report | IP: Logged |
Programmazione c
Ciao ragazzi, ho un problema in c..
Siccome sto programmando un client ftp e volevo implementare il resume, mi servirebbe una funzione che legge la dimensione del file che ho appena scritto... qualcuno sa come fare?
Grazie
|
09-04-2003 08:01 |
|
|
|  |
 |
lorenzo |
[code]
... |
09-04-2003 12:19 |
|
 |
lorenzo |
...ma anche no.

Registered: Jun 2002
Posts: 3149 (0.37 al dì)
Location: Milano
Corso: F49
Anno: 00000011
Time Online: 49 Days, 1:47:46 [...]
Status: Offline
Edit | Report | IP: Logged |
code:
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
...
int handle;
long filesize;
handle = open("FILENAME.DAT", O_RDWR);
...
filesize = filelength(handle);
...
close(handle);
__________________
Non ti laureare, continua a cazzeggiare!
"È tutta merda..." - clod81
|
09-04-2003 12:19 |
|
|
|  |
 |
nous |
Lorè,a volte mi fai paura :approved:
... |
09-04-2003 12:34 |
|
 |
nous |
.:Retore Pomposo:.

Registered: Dec 2001
Posts: 2945 (0.34 al dì)
Location: Fino Mornasco - Como
Corso: Informatica
Anno: Specialista
Time Online: 16 Days, 13:56:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Lorè,a volte mi fai paura 
P.s. Ma perchè apri il file in lettura e scrittura?
__________________
Cristian,il Nous che invoglia ^_^
"La capa è troppo in la,e la sbarba è troppo giovane..mi sa che qua si va in bianco"
Ryo Saeba (City Hunter)
|
09-04-2003 12:34 |
|
|
|  |
 |
lorenzo |
[QUOTE][i]Originally posted by nous [/i]
... |
09-04-2003 12:37 |
|
 |
lorenzo |
...ma anche no.

Registered: Jun 2002
Posts: 3149 (0.37 al dì)
Location: Milano
Corso: F49
Anno: 00000011
Time Online: 49 Days, 1:47:46 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by nous
P.s. Ma perchè apri il file in lettura e scrittura?
Lui parla di "file che ho appena scritto", quindi immagino che ce l'abbia già aperto da prima.
__________________
Non ti laureare, continua a cazzeggiare!
"È tutta merda..." - clod81
|
09-04-2003 12:37 |
|
|
|  |
 |
Spiderweb |
Inserendo
... |
09-04-2003 18:30 |
|
 |
Spiderweb |
.fedelissimo.
Registered: Oct 2002
Posts: 51 (0.01 al dì)
Location: Vigevano
Corso: Comunicazione Digitale
Anno: 1 specialistica
Time Online: 12:50:04: [...]
Status: Offline
Edit | Report | IP: Logged |
Inserendo
int handle;
long posizione;
handle = open(retr, O_RDWR);
posizione=filelength(handle);
con gli opportuni header, dove str è una stringa contenente nome file, ottengo il seguente errore:
/home/spiderweb/tmp/ccaCZggr.o(.text+0x422): In function `resume':
: undefined reference to `filelength'
collect2: ld returned 1 exit status
come mai?
|
09-04-2003 18:30 |
|
|
|  |
 |
lorenzo |
Uhm... compila ma non linka...
... |
11-04-2003 18:44 |
|
 |
lorenzo |
...ma anche no.

Registered: Jun 2002
Posts: 3149 (0.37 al dì)
Location: Milano
Corso: F49
Anno: 00000011
Time Online: 49 Days, 1:47:46 [...]
Status: Offline
Edit | Report | IP: Logged |
Uhm... compila ma non linka...
Vabbè, ci sono altri metodi per calcolare la dimensione del file, ma devi aprirlo come stream.
O lo apri direttamente con la fopen():
code:
FILE *stream;
stream = fopen("FILENAME.DAT", "w+");
O se ce l'hai aperto da prima con la open() lo converti in stream così:
code:
FILE *stream;
stream = fdopen(handle, "w+");
e poi usa questa funzione per calcolarti la dimensione:
code:
long file_length(FILE *stream)
{
long p, size;
p = ftell(stream);
fseek(stream, 0L, SEEK_END);
size = ftell(stream);
fseek(stream, p, SEEK_SET);
return size;
}
(Spero di aver scritto tutto giusto, non l'ho provato...)
__________________
Non ti laureare, continua a cazzeggiare!
"È tutta merda..." - clod81
|
11-04-2003 18:44 |
|
|
|  |
 |
Lunik |
[OT]a volte Lore mi lascia :shock:[/OT] ... |
11-04-2003 18:45 |
|
 |
Lunik |
dsy core staff

Registered: Mar 2002
Posts: 22362 (2.61 al dì)
Location: Milano
Corso: ComDig
Anno: Dott.ssa
Time Online: 93 Days, 0:52:10 [...]
Status: Offline
Edit | Report | IP: Logged |
Off-Topic: a volte Lore mi lascia 
__________________
Il DSY su Facebook!!!
|
11-04-2003 18:45 |
|
|
|  |
 |
nous |
Anche a me...a che serve la ftell() ?? ... |
12-04-2003 00:08 |
|
 |
nous |
.:Retore Pomposo:.

Registered: Dec 2001
Posts: 2945 (0.34 al dì)
Location: Fino Mornasco - Como
Corso: Informatica
Anno: Specialista
Time Online: 16 Days, 13:56:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Anche a me...a che serve la ftell() ??
__________________
Cristian,il Nous che invoglia ^_^
"La capa è troppo in la,e la sbarba è troppo giovane..mi sa che qua si va in bianco"
Ryo Saeba (City Hunter)
|
12-04-2003 00:08 |
|
|
|  |
 |
Spiderweb |
Grazie mille a tutti... però adesso ho un altro p ... |
12-04-2003 09:15 |
|
 |
Spiderweb |
.fedelissimo.
Registered: Oct 2002
Posts: 51 (0.01 al dì)
Location: Vigevano
Corso: Comunicazione Digitale
Anno: 1 specialistica
Time Online: 12:50:04: [...]
Status: Offline
Edit | Report | IP: Logged |
Grazie mille a tutti... però adesso ho un altro problema: quando faccio la richiesta di download al server, lui riempie tutto il buffer della socket. Però il buffer della socket è limitato, nel senso che non posso mica allocare un array di 600mega: sapete come posso far dividere il file o allocare la dimensione del mio buffer dinamicamente?
Grazie
|
12-04-2003 09:15 |
|
|
|  |
 |
nous |
[OT]Ma perchè non usi smartFTP? :D:D:D[/OT] ... |
12-04-2003 10:31 |
|
 |
nous |
.:Retore Pomposo:.

Registered: Dec 2001
Posts: 2945 (0.34 al dì)
Location: Fino Mornasco - Como
Corso: Informatica
Anno: Specialista
Time Online: 16 Days, 13:56:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Off-Topic: Ma perchè non usi smartFTP?   
__________________
Cristian,il Nous che invoglia ^_^
"La capa è troppo in la,e la sbarba è troppo giovane..mi sa che qua si va in bianco"
Ryo Saeba (City Hunter)
|
12-04-2003 10:31 |
|
|
|  |
 |
CLod |
forse xkè deve fare un progetto per l'uni... ... |
12-04-2003 12:54 |
|
 |
CLod |
JAILED

Registered: May 2002
Posts: 2688 (0.32 al dì)
Location: una delle 2 torri
Corso: Master ICT Sec
Anno: security
Time Online: 14 Days, 23:35:35 [...]
Status: Offline
Edit | Report | IP: Logged |
forse xkè deve fare un progetto per l'uni...
__________________
Se il pugno e' chiuso la mano e' vuota. Solo se la mano e' aperta puoi possedere tutto
|
12-04-2003 12:54 |
|
|
|  |
 |
nous |
Prova ad allocare memoria dinamicamente con la mal ... |
12-04-2003 13:21 |
|
 |
nous |
.:Retore Pomposo:.

Registered: Dec 2001
Posts: 2945 (0.34 al dì)
Location: Fino Mornasco - Como
Corso: Informatica
Anno: Specialista
Time Online: 16 Days, 13:56:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Prova ad allocare memoria dinamicamente con la malloc passandole come parametro il sizeof del file che ti interessa.
__________________
Cristian,il Nous che invoglia ^_^
"La capa è troppo in la,e la sbarba è troppo giovane..mi sa che qua si va in bianco"
Ryo Saeba (City Hunter)
|
12-04-2003 13:21 |
|
|
|  |
 |
lorenzo |
[QUOTE][i]Originally posted by Spiderweb [/i]
... |
14-04-2003 12:50 |
|
 |
lorenzo |
...ma anche no.

Registered: Jun 2002
Posts: 3149 (0.37 al dì)
Location: Milano
Corso: F49
Anno: 00000011
Time Online: 49 Days, 1:47:46 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Spiderweb
Però il buffer della socket è limitato, nel senso che non posso mica allocare un array di 600mega
code:
if ((var = (char *)malloc(629145600)) == NULL)
fprintf(stderr, "Not enough memory.\n"); //
Beh, con una partizione di swap sufficientemente grande potresti anche farlo...
Non riesci a fare un buffer più piccolo che una volta pieno lo svuoti sul disco?
__________________
Non ti laureare, continua a cazzeggiare!
"È tutta merda..." - clod81
|
14-04-2003 12:50 |
|
|
|  |
 |
LazerPhEa |
[QUOTE][i]Originally posted by Spiderweb [/i]
... |
14-04-2003 13:11 |
|
 |
LazerPhEa |
Vendo Steinberger GM7TA

Registered: Jul 2002
Posts: 4400 (0.52 al dì)
Location: S. Donato Beach
Corso: TICo
Anno: Finito tutto
Time Online: 83 Days, 22:35:22 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Spiderweb
Grazie mille a tutti... però adesso ho un altro problema: quando faccio la richiesta di download al server, lui riempie tutto il buffer della socket. Però il buffer della socket è limitato, nel senso che non posso mica allocare un array di 600mega: sapete come posso far dividere il file o allocare la dimensione del mio buffer dinamicamente?
Grazie
Una curiosità: hai cercato nell'RFC cosa dice riguardo alla politica di flow control lato sender?
__________________
Questo è il giardino
Dove il principe muore
Nessun sentiero
Nessun destriero
Soltanto un nome... Eterno...
|
14-04-2003 13:11 |
|
|
|  |
 |
All times are GMT. The time now is 18:56. |
|
|
 |
|
 |
|
|
|  |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|