W tym dziale zamieszczam kilka programów, które sam osobiście pisałem. Było
kilka różnych powodów, dla których te programy popełniłem: z nudów, bo
dostałem takie zadanie od kolegi, bo sam potrzebowałem takiego badziewia. Sam
oceń, czy ci się podobują.
Programy dla
un*xów |
murder |
skrypt powłoki Bash zabijający procesy o zadanej nazwie, coś a la
killall(1), napisany z myślą o Solarisach, w których tego
programu brakuje |
chlink |
skrypt powłoki Bash zamieniający linki symboliczne ze wskazujących na
bezwzględny adres na wskazujące na adres względny - i to najkrótszy
możliwy. |
remindme |
skrypt przypominający powłoki Bash, przewidziany dla ludzi pracujących
przede wszystkim pod konsolą - czyli dla mnie :] |
dial-find |
skrypt-nakładka, ułatwiający korzystanie z programu find(1);
niespecjalnie wiele opcji, ale wystarczająco wiele |
reindent |
skrypt Bash-a uruchamiający program indent(1) z parametrami
ustawionymi na moje formatowanie, ze wspomagającym skryptem
gawk(1), doformatowującym niedociągnięcia indenta |
Extended Slackware |
pomysł na ulepszenie mojej ukochanej dystrybucji Linuksa. "Zastępnik"
pkg_tools, które tu kiedyś były. |
Programy napisane na
zajęcia |
Treść zadania |
napisz parę programów klient-serwer, przesyłającą plik przy pomocy
pamięci dzielonej, komunikatów i kolejki FIFO |
Rozwiązanie zadania |
ale żeby nie było łatwo, to tu jest serwer przesyłający jeden plik
jednemu klientowi i klient pobierający jeden plik od serwera. Resztę
musisz sam dorobić, co jednak nie powinno być specjalnie trudne |
Treść zadania |
zaimplementuj następującą sytuację: w domku mieszka N < 100
filozofów, którzy chodzą po domu i myślą. Jak któryś wymyśli, że jest
głodny, idzie do kuchni, w której mieści się najwyżej 20 osób. Siedząc
w kuchni próbuje usiąść przy pięcioosobowym stole. Gdy usiądzie, czeka
na dwie wolne pałeczki (między każdymi dwoma krzesłami jest jedna,
a jedną nie da się jeść). Filozof jest leniwy, więc nie wstaje, żeby
podnieść inne pałeczki niż te, które leżą obok niego. Jak filozof się
naje, wstaje od stołu i wychodzi z kuchni |
Rozwiązanie zadania
| ale żeby znów nie było zbyt łatwo, czekanie na zwolnienie zasobów odbywa
się przy pomocy pętli while (zablokowany) ;, która jest
niesamowicie procesorożerna. Powinieneś to zmienić przed
wykorzystaniem (na przykład dodać usleep()) |
Wszystkie te programy udostępnione są jako freeware, a programy w źródłach
pod licencją GPL. Możesz zatem używać ich oraz ich kodu źródłowego nawet do
zaliczenia informatyki (choć w tym wypadku chciałbym wiedzieć, że się
przydałem i proszę o e-mail:
dozzie[at]irc.pl).