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. 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"); +} 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; +}