Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maksasj/bush
https://github.com/maksasj/bush
Last synced: about 6 hours ago
JSON representation
- Host: GitHub
- URL: https://github.com/maksasj/bush
- Owner: Maksasj
- License: mit
- Created: 2024-10-16T12:07:54.000Z (about 1 month ago)
- Default Branch: master
- Last Pushed: 2024-10-27T17:51:54.000Z (23 days ago)
- Last Synced: 2024-10-27T20:56:30.196Z (23 days ago)
- Language: C
- Size: 24.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
## Antra užduotis
Šios užduoties tikslas – parodyti tvirtą supratimą apie darbą su Unix procesais naudojant C programavimo kalbą. Programa turi sąveikauti su procesais, priimti ir apdoroti komandas bei atitikti toliau nurodytus reikalavimus:
[x] Parašykite savo kodą C programavimo kalba.
[x] Į kodą įtraukite pakankamai komentarų, kad būtų aiškiau ir paaiškintumėte savo logiką bei požiūrį.
[x] Įsitikinkite, kad kodas gali veikti universiteto Linux kompiuteryje.
[x] Sukurkite funkcinį Makefile savo programai ir įsitikinkite, kad kodas gali būti sukompiliuotas naudojant jį.
[x] Paleidę programą, parodykite vartotojui kviečiantį pranešimą.
[x] Programa turi priimti ir apdoroti vartotojo komandas.
[x] Programa baigiama vienu iš šių būdų:
[x] Gavęs EOF (failo pabaiga).
[x] Gavęs iš vartotojo komandą "exit".
[x] Nenaudokite `system(3)` funkcijos komandoms vykdyti.
[x] Naudojant tik standartines Unix API funkcijas, tokias kaip `fork(2)`, `execv(2)`, `exit(2)`, ...
[x] Procesų valdymui nenaudoti išorinių bibliotekų.
[x] Pasirinkite vieną iš šių reikalavimų:
[x] konvejeriaiRealizuokite konvejerių palaikymą, kad vieno proceso išvestis būtų naudojama kaip kito proceso įvestis. Pavyzdžiui, vartotojai turėtų turėti galimybę vykdyti tokias komandas kaip `command1 | command2` perduoti `command1` išvestį kaip įvestį `command2`.
[-] foninis apdorojimas
Realizuokite apdorojimą fone pagal UNIX `/bin/sh` apvalkalą (shell), realizuodami komandas `bg`, `fg`, `kill` valdymo operatorių `&`.
[-] srautų nukreipimas
Realizuokite srautų nukreipimo funkcionalumą pagal UNIX `/bin/sh` apvalkalą (shell), jame nukreipimai atliekami naudojant operatorius `>`, `>>`, `<`, `n>`, ...
[x] Pastaba: nereikia realizuoti išorinių programų, tokių kaip `ls(1)`, `sort(1)` ar `grep(1)`. Vietoj to turėtumėte iškviesti šias programas naudodami tokias funkcijas kaip `execv(2)`.