Se puoi usare GNU C Compiler (GCC) hai memmem.
Altrimenti, potresti copiarla da loro (il sorgente è disponibile) dipendendo dalle licenze in uso.
Richiesta http
Moderatori:
Paolino,
fairyvilje
25 messaggi
• Pagina 3 di 3 • 1, 2, 3
0
voti
[22] Re: Richiesta http
fairyvilje ha scritto:Non totalmente, c'è un problema legato alla codifica. Aprire un file in lettura modalità testo o modalità binaria ha un impatto sul risultato. Per questo quando si fa una fopen (o equivalente) è necessario specificare.
https://stackoverflow.com/questions/229 ... -text-mode
Ecco, questa è una cosa importante...
L'apertura del file di solito la faccio con w / r (/a), da notare che nella fread il puntatore su cui viene memorizzato il contenuto del file è di tipo void *, quindi non scegliendo la modalità "testo" il contenuto del file dovrebbe essere memorizzato esattamente per come viene letto. Momentaneamente faccio scrivere tutta la "richiesta" dell'upload così per intero in un unico file, nel frattempo esamino il metodo corretto per estrarre il file binario da tutta la richiesta.
alev ha scritto:Poi, se nell'algoritmo prevedi di "parsare" il file, il discorso cambia
Assolutamente no, non deve parsare niente, gli allegati possono essere anche file binari eseguibili, solo che il browser formula la richiesta inserendo all'inizio e alla fine del file e quindi il file "vero e proprio" va tirato fuori da queste intestazioni... Solo questo deve fare il webserver.
DonJ ha scritto:Scusa se insisto, ma come IPC puoi usare semplicemente delle named pipes come coda di messaggi tra processi, non c'e` bisogno di condividere la stessa memoria o scrivere file su disco.
Puoi avere uno dei frameworks precotti che scrive sulla pipe e un programma in qualunque linguaggio che legge dalla stessa. Ti togli tutto l'overhead di scrivere la parte funzionale di HTTP. Fai molto prima che riscrivere l'implementazione in C.
https://opensource.com/article/19/4/int ... x-channels
No, usando le pipes e le code di messaggi si deve prevedere un'interfaccia "client/server" basata appunto su queste due ipc, i programmi che devo integrare devono usare le shared memory perché contengono una gran quantità di dati che possono variare da un momento all'altro, ovviamente le varia il programma, il webserver li legge solo e nel caso una richiesta indica di modificare un valore deve essere prevista una parte che modifica in modo sicuro il valore senza possibilità di creare "valori sconosciuti".
DonJ ha scritto:Se questo non e` un esercizio che ti stai imponendo per approfondire la tua conoscenza o un esame
Si, mi sto anche preparando all'esame di sistemi operativi, e mi serve anche come esercizio oltre all'utilità che ne avrebbe per me...
DonJ ha scritto:fairyvilje ha scritto:Si, lo sto trovando molto gradevole anche per applicazioni embedded su processori ARM o ATMEL.
Esistono compilatori Rust per ARM? Non lo sapevo! Dovro` approfondire :)
Mai sentito, per ora mi limito al compilatore standard di linux per una questione di "compatibilità colloquiale".
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
0
voti
[23] Re: Richiesta http
daniele1996 ha scritto:programmi che devo integrare devono usare le shared memory perché contengono una gran quantità di dati che possono variare da un momento all'altro, ovviamente le varia il programma
FastCGI? Insomma, a parte per esercizio non scriverei nel 2021 un web server in C.
0
voti
[24] Re: Richiesta http
Presentato come elaborato all'esame di sistemi operativi, il programma è ancora in fase di sviluppo e già posso fare parecchie cose... sto sviluppando un impianto di domotica, e mi serve un micro server, e con un raspberry ho risolto il problema... il programma funziona bene ovunque e a mio parere è leggerissimo, le pagine se il modello preimpostato è strutturato bene, la composizione dinamica può richiedere pochissimo tempo...
Vi mando qualche screen, spero vi piaccia, appena ho qualcosa in più faccio un post :)
Vi mando qualche screen, spero vi piaccia, appena ho qualcosa in più faccio un post :)
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
0
voti
[25] Re: Richiesta http
Stavo pensando una cosa, usando la realloc forse si potrebbe ricevere il file. Facendo riferimento al campo Content-Lenght si può calcolare di quanto estendere la memoria.Va calcolato il punto finale dove continuare a riempire buffer e si può reiterare fino alla ricezione completa del blocco dati. l'analisi del contenuto ricevuto va attenzionato diversamente.
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
25 messaggi
• Pagina 3 di 3 • 1, 2, 3
Chi c’è in linea
Visitano il forum: Nessuno e 9 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

