lilf4p / file-storage-sol

Server file storage multithread con relativa api per la comunicazione con i client.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

file-storage-sol

Progetto finale per il corso di Sistemi Operativi e Laboratorio (SOL) dell'UniversitĂ  di Pisa. Il progetto prevede la realizzazione di un file storage server, un client e una API per la comunicazione del client con il server. Il server memorizza i file in memoria principale e offre operazioni per aggiungere, modificare, leggere e rimuovere i file.

Comandi da eseguire nella directory principale :

  • make : costruisce gli eseguibili "server" e "client"
  • make test1 : avvia il primo test
  • make test2 : avvia il secondo test
  • make clean : elimina gli eseguibili "server" e "client"
  • make cleanall : elimina tutti i file generati da make (eseguibili, oggetto, temporanei, librerie, ...)

CLI server :

  • -s config.txt : specifica il file di config da usare

CLI client :

  • -h : lista operazioni client
  • -f filename : connettiti al socket filename
  • -w dirname[,n=0] : scrivi sul server n file contenuti nella directory dirname, se n=0 o non specificato scrivili tutti
  • -W file1[,file2] : scrivi i file sul server
  • -r file1[,file2] : leggi i file dal server
  • -R [n=0] : leggi n file dal server, se n=0 o non specificato leggili tutti
  • -d dirname : salva i file letti nella directory dirname del client
  • -t time : ritardo in ms tra le richieste al server
  • -c file1[,file2] : elimina i file dal server
  • -p : abilita stampe su stdout per ogni operazione

Struttura directory :

  • configTest1 : contiene config.tx per il test 1
  • configTest2 : contiene config.txt per il test 2
  • downloadTest1 : file scaricati dal test 1
  • downloadTest2 : file scaricati dal test 2
  • testfile : contiene i file utilizzati dai test 1 e 2
  • tmp : contiene il file socket .sk
  • src : contiene i file sorgente .c
  • objs : contiene i file oggetto .o
  • lib : contiene le librearie .a

About

Server file storage multithread con relativa api per la comunicazione con i client.


Languages

Language:C 97.5%Language:Shell 1.3%Language:Makefile 1.2%