Per rispondere, è concesso l'uso del terminale di Linux.
Quale delle seguenti affermazioni è vera?
| Linux è multiutente, perché definisce più utenti, di cui però uno solo può essere loggato su una data macchina |
| Nessuna delle altre opzioni è vera |
| Linux è multiprocesso, perché permette a più utenti contemporaneamente di essere loggati sulla stessa macchina |
| Linux è multiprocesso, perché può essere usato su una macchina con più processori |
cat e od è falsa?
L'opzione -A di od permette di scegliere la base (decimale, ottale od esadecimale) di tutti i bytes da stampare |
L'opzione -n di cat fa precedere ogni riga stampata con il numero della riga stessa (a partire da 1) |
L'opzione -E di cat stampa anche il carattere $ alla fine di ogni riga |
L'opzione -j B di od permette di cominciare la visualizzazione a partire dal (B + 1)-esimo byte |
Per stampare su stdout la spiegazione di un errore verificatosi in una syscall si può effettuare la seguente chiamata: printf("%s\n", strerror(errno)); |
Per stampare su stdout la spiegazione di un errore verificatosi in una syscall è sufficiente chiamare perror |
Per stampare su stdout la spiegazione di un errore verificatosi in una syscall è necessario scrivere uno switch sulla variabile globale errno |
Per stampare su stderr la spiegazione di un errore verificatosi in una syscall, il cui nome sia contenuto nella variabile syscall_name (di tipo char *), si può effettuare la seguente chiamata: perror("Si e' verificato il seguente errore nella chiamata a %s", syscall_name); |
cmd1 e cmd2 (si supponga anche che tali comandi non terminino, a meno che non gli si mandi un opportuno segnale). Quale dei seguenti modi è corretto?
wait e waitpid è falsa?
Se una chiamata wait(&status); ha successo, il valore di status coincide con l'exit status del processo figlio appena terminato |
Ogni chiamata wait(&status); è equivalente alla chiamata waitpid(-1, &status, 0) |
Le chiamate alla wait sono sempre bloccanti |
Le chiamate alla waitpid possono non essere bloccanti |
malloc, calloc, realloc e free è falsa?
I risultati di malloc, calloc e realloc possono essere passati alla funzione free per poter essere riallocati da future malloc e/o calloc |
Le due chiamate malloc(N*sizeof(int)) e realloc(NULL, N*sizeof(int)) hanno sempre lo stesso effetto |
Il primo argomento di realloc, quando non NULL, deve contenere il risultato di una precedente chiamata a malloc, calloc o realloc |
Le due chiamate calloc(N, sizeof(int)) e realloc(NULL, N*sizeof(int)) hanno sempre lo stesso effetto |
less e more è falsa?
| Sono specialmente utili quando si vuole visualizzare un output molto lungo (che non è possibile visualizzare in un'intera schermata di terminale) |
| Sono entrambi interattivi |
| Per terminarli occorre premere CTRL+C |
| Entrambi permettono di ricercare espressioni regolari |
somefunction ritorna un intero. Quale dei seguenti frammenti di codice scrive gli stessi caratteri sullo stdout, senza errori?
Per vedere i jobs in foreground, è sufficiente usare il comando jobs |
| Ciascun job è composto al massimo da un processo |
| Nessuna delle altre opzioni è vera |
| Quando un processo in foreground termina, la bash stampa il job id del processo e la ragione della terminazione |