Uppercase Through a Pipe
Un părinte citește un cuvânt de la tastatură și îl trimite copilului printr-un pipe. Copilul primește cuvântul, îl convertește la litere mari și îl afișează.
Un pipe este un canal unidirecțional între procese: unul scrie într-un capăt (p[1]), celălalt citește din capătul opus (p[0]). Închidem capetele nefolosite ca să evităm confuziile: dacă părintele nu închide p[0], copilul nu vede sfârșitul fluxului la citire.
Date de intrare
- Linia 1: un cuvânt de 1 până la 100 de caractere, format din litere (mici sau mari) și cifre.
Rezultat
- O singură linie: cuvântul convertit la litere mari (uppercase). Cifrele și literele care sunt deja mari rămân neschimbate.
Exemple
Intrare:
hello
Ieșire:
HELLO
Intrare:
cyberstars
Ieșire:
CYBERSTARS
Folosește pipe(), fork(), read(), write() din unistd.h, wait(NULL) din sys/wait.h și toupper() din ctype.h.