From d9718a75b0468898cb30fa943eeba2ef9b2e0879 Mon Sep 17 00:00:00 2001 From: eliac Date: Thu, 31 Mar 2022 12:57:14 +0200 Subject: [PATCH 1/3] svolta consegna --- 2-processi/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/2-processi/README.md b/2-processi/README.md index ee599c3..bf34307 100644 --- a/2-processi/README.md +++ b/2-processi/README.md @@ -85,7 +85,7 @@ Consegnare l’esercitazione semplicemente modificando questo file ed inserendo Come si ottiene l’utima riga della Divina Commedia? ```bash -Inserire qui il comando che produce la risposta +cat divina_commedia.txt | tail -n 1 ``` ### 2. A proposito di stelle @@ -93,7 +93,7 @@ Inserire qui il comando che produce la risposta Le stelle occupano un significato simbolico all’intero della Divina Commedia. Quante volte vengono menzionate all’interno del testo? ```bash -Inserire qui il comando che produce la risposta +ccat divina_commedia.txt | grep -i "stelle" -o | wc -w ``` ### 3. Lista dei file @@ -101,7 +101,7 @@ Inserire qui il comando che produce la risposta Trovare il file più piccolo presente in questa cartella. ```bash -Inserire qui il comando che produce la risposta +ls -S | tail -n 1 ``` ### 4. Lista delle domande @@ -113,7 +113,7 @@ Considerato che il sorgente di questo file è disponibile all’indirizzo: Trovare il comando che generi la lista delle domande per la consegna. ```bash -Inserire qui il comando che produce la risposta +curl https://raw.githubusercontent.com/DigiPlatMOOC/pdgt-esercitazione-interfacce-base/master/2-processi/README.md | grep -E "### [1. 2. 3. 4.]" ``` Non è importante che le domande siano ben formattate, ma devono essere visibili almeno nel titolo. From 5c5cd7f4141bec68f64f3f0bc57db149495e3cc7 Mon Sep 17 00:00:00 2001 From: eliac Date: Sun, 3 Apr 2022 17:41:49 +0200 Subject: [PATCH 2/3] Consegna esercizio 3 --- 3-canali-standard-c/spongebob.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 3-canali-standard-c/spongebob.c diff --git a/3-canali-standard-c/spongebob.c b/3-canali-standard-c/spongebob.c new file mode 100644 index 0000000..1d51278 --- /dev/null +++ b/3-canali-standard-c/spongebob.c @@ -0,0 +1,27 @@ +#include +#include +#include +#include + +int main(void) { + /* variabilli locali */ + int numero_casuale; + char c; + char *parola; + + /* sincronizzazione generatore con clock di sistema */ + srand(time(NULL)); + + while (fscanf(stdin, "%c", &c) != EOF) { + /* generazione numero pseudo-casuale */ + numero_casuale = rand() % 100 + 1; + + /* conversione carattere */ + if (numero_casuale % 2 == 0) { + printf("%c", tolower(c)); + } else { + printf("%c", toupper(c)); + } + } + printf("\n"); +} From 669ea13a6fe741cbd64930dbefc5f6afd88c068d Mon Sep 17 00:00:00 2001 From: eliac Date: Fri, 29 Apr 2022 09:31:42 +0200 Subject: [PATCH 3/3] consegna esercizio 4 --- 4-socket/http.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 4-socket/http.c diff --git a/4-socket/http.c b/4-socket/http.c new file mode 100644 index 0000000..7f04548 --- /dev/null +++ b/4-socket/http.c @@ -0,0 +1,50 @@ +#include +#include "socket-lib.h" +#include + +#define HOST "www.google.com" +#define PORT 80 + +int main() { + if(socket_init() != 0) { + fprintf(stderr, "Socket initialization failed\n"); + return 1; + } + + SOCKET_T socket = socket_create(); + if(socket == 0) { + fprintf(stderr, "Failed to create socket\n"); + return 1; + } + + if(socket_connect(socket, HOST, PORT) < 0) { + fprintf(stderr, "Failed to connect socket\n"); + return 1; + } + + printf("Connected!\n"); + + char input[512]; + memset(input, 0, sizeof(char) * 512); + + sprintf(input, "GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n"); + + send(socket, input, strlen(input), 0); + socket_close_send(socket); + + int read = socket_read_all(socket, input, 511); + printf("Received: "); + for(int i = 0; i < read; ++i) { + fputc(input[i], stdout); + } + printf("\n"); + + socket_close(socket); + + if(socket_quit(socket) != 0) { + fprintf(stderr, "Socket finalization failed\n"); + return 1; + } + + return 0; +}