Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: 20 ćwiczeń za 60zł  (Przeczytany 5857 razy)

Istquai

  • Gość
20 ćwiczeń za 60zł
« dnia: 2014-05-17, 22:57:05 »
Cześć, oferuję 50zł za napisanie kilkunastu prostych (nie dla mnie) programów w języku C (procesy, potoki, wątki itp). Przelew na konto bankowe lub paypal.

Proszę napisać program, który będzie uruchamiany z dwoma
argumentami: ścieżką do pliku oraz prawami dostępu w postaci
rwxrwxrwx - drugi parametr musi mieć długość 9 znaków i
zawierać ciąg znaków rwxrwxrwx, gdzie każdą literę można
zastąpić myślnikiem. Program ma tworzyć plik o nazwie (ścieżce)
podanej w pierwszym argumencie i prawach dostępu podanych w
drugim argumencie. W przypadku wystąpienia błędu program
powinien wyświetlić informację o błędzie oraz kod błędu.
Zadanie 2

Proszę napisać program, który będzie zwracał wielkość w bajtach
pliku podanego jako pierwszy parametr wywołania.
Zadanie 3

Proszę napisać program, który będzie tworzył plik o podanej
wielkości w bajtach. Program ma być uruchamiany z dwoma
parametrami: ścieżka do plików oraz liczba bajtów.
Zadanie 4

Proszę napisać program, który ma kopiować zawartość pliku
podanego jako pierwszy parametr wywołania do pliku podanego
jako drugi argument wywołania.
Zadanie 5

Proszę napisać program, który przekieruje standardowe wejście na
deskryptor czytający z pliku podanego jako pierwszy argument
wywołania oraz standardowe wyjście do na deskryptor zapisujący
do pliku podanego jako drugi argument wywołania. Następnie ma
wykonać polecenia:
char str[80];
scanf("%79s", str);
printf("Wczytałem znaki %s", str);
Zadanie 6

Proszę napisać program, który usuwa plik, do którego ścieżka jest
podana jako pierwszy argument wywołania.
Zadanie 7

Proszę napisać program, który będzie uruchamiał pewną liczbę
procesów potomnych i wyświetlał ich numery PID. Liczba
tworzonych procesów ma być podana jako pierwszy argument
wywołania.
Zadanie 8

Proszę zmodyfikować program z Ćwiczenia 3. Podobnie program
ma mieć w pierwszym argumencie wywołania podaną liczbę
tworzonych procesów potomnych. Program ma najpierw wyświetlić
własny numer PID, a następnie każdy z nowoutworzonych
procesów potomnych ma wyświetlić komunikat typu: “Nowy proces
o numerze PID=XX. Macierzysty proces ma PID=YY”, gdzie w
miejscu XX zostanie wpisana wartość PID procesu, a w miejscu
YY zostanie wpisana wartość procesu macierzystego.
Zadanie 9

Proszę napisać program tworzący konkretną liczbę procesów sierot.
Liczba procesów ma być podana jako argument wywołania. Żeby
można było zaobserwować istnienie procesów sierot proszę w tych
procesach wywołać funkcję sleep(60), a proces macierzysty
zakończyć po utworzeniu przez niego procesów potomnych.
Zadanie 10

Proszę napisać program tworzący konkretną liczbę procesów
zombi. Liczba procesów ma być podana jako argument wywołania.
Żeby można było zaobserwować istnienie procesów zombi proszę
zamykać każdy z procesów potomnych zaraz po utworzeniu, a w
procesie macierzystym wywołać funkcję sleep(60) przed
wielokrotnym wywołaniem funkcji wait - tyle wywołań ile procesów
potomnych.
Zadanie 11

Proszę napisać dwa programy, które będą w argumencie wywołania
pobierać ścieżkę do nazwanego łącza (kolejki FIFO):
1 Program ma tworzyć kolejkę FIFO w pliku podanym jako
pierwszy argument wywołania, następnie otworzyć deskryptor
do zapisu i w nieskończonej pętli pobierać ze standardowego
wejścia słowa i zapisywać je do kolejki.
2 Program ma otwierać deskryptor do odczytu kolejki FIFO
podanej jako pierwszy argument. Następnie ma w
nieskończonej pętli czytać dane z deskryptora i wyświetlać je
na standardowym wyjściu.
Zadanie 12

Napisz program który tworzy trzy procesy - proces macierzysty i
jego dwa procesy potomne. Pierwszy z procesów potomnych
powinien zapisać do potoku napis ”HALLO!”, a drugi proces
potomny powinien ten napis odczytać (wyświetlić na
standardowym wyjściu).
Zadanie 13

Napisz program tworzący dwa procesy: klienta i serwer. Serwer
tworzy ogólnodostępną kolejkę FIFO i czeka na zgłoszenia
klientów. Każdy klient tworzy własną kolejkę, poprzez którą będą
przychodzić odpowiedzi serwera. Zadaniem klienta jest przesłanie
nazwy stworzonej przez siebie kolejki, a serwera odesłaniem
poprzez kolejkę stworzoną przez klienta napisu “Client accepted”
Zadanie 14

Zmodyfikuj program z zadania trzeciego. Dwa programy:
1 Serwer uruchamiany z jednym argumentem - ścieżką do
ogólnodostępnej kolejki FIFO. Dla każdego odebranego
napisu ma:
forkować się - proces macierzysty ma dalej czekać na napisy z
ogólnodostępnej kolejki
proces potomny tworzy dwukierunkową kolejkę
proces potomny w ramach komunikacji z klientem ma na tej
kolejce odsyłać dane otrzymane na wejściu (echo-server)
2 Klient ma być uruchamiany z dwoma argumentami: ścieżką do
kolejki serwera oraz ścieżką, gdzie ma utworzyć kolejkę do
indywidualnej komunikacji z serwerem. Następnie w
nieskończonej pętli ma pobierać ze standardowego wejścia
słowa, przesyłać do kolejki i wyświetlać zwrócone dane.
Zadanie 15

Implementacja aplikacji echoServer i echoClient, dwa programy:
Serwer
Serwer ma być uruchamiany z jednym argumentem oznaczającym
ścieżkę do ogólnodostępnej kolejki FIFO. Dla każdego odebranego
napisu ma:
tworzyć nowy wątek do obsługi klienta - wątek macierzysty
ma dalej czekać na napisy z ogólnodostępnej kolejki
wątek potomny ma potraktować otrzymany z kolejki napis
jako ścieżkę lub nazwę indywidualnej kolejki do komunikacji z
klientem, kolejka ma być traktowana dwukierunkowo
wątek potomny w ramach komunikacji z klientem ma na tej
kolejce odsyłać dane otrzymane na wejściu (echo-server)

Klient
Klient ma być uruchamiany z dwoma argumentami: ścieżką do
kolejki w ramach której ma zainicjować komunikację z serwerem
oraz ścieżką, gdzie ma utworzyć kolejkę do indywidualnej
komunikacji z serwerem (z utworzonym przez serwer wątkiem do
obsługi klienta), następnie w nieskończonej pętli ma pobierać ze
standardowego wejścia słowa, przesyłać do kolejki i wyświetlać
zwrócone dane
Zadanie 16

Modyfikacja Ćwiczenia poprzedniego (15) - tym razem dla testów synchronizacji
wątków będziemy pracowali w ramach jednej aplikacji symulującej
zarówno serwer, jak i klienta. Aplikacja ma utworzyć dwa wątki -
echoServer i echoClient komunikujące się za pomocą potoków.
Deksryptory przekazujemy w argumencie wywołania funkcji.
Aplikacja ma nie używać sleepów, tylko zmiennych typu
pthread mutex t i pthread cond t do zapewnienia odpowiedniej
kolejności wczytywania i zapisu do potoków.
Zadanie 17

Napisz program tworzący dwa procesy komunikujące się poprzez
kolejkę komunikatów. Komunikacja polega na przesłaniu
komunikatów różnego typu. Proces odbierający powinien odbierać
tylko komunikaty typu podanego jako argument wejściowy.
(wskazówka: zakładamy że typ komunikatu jest liczbą z przedziału
< 1, 10 >).
Zadanie 18

Napisz program tworzący dwa procesy komunikujące się poprzez
kolejkę komunikatów. Komunikacja polega na przesłaniu
komunikatów różnego typu. Proces odbierający powinien odbierać
tylko komunikaty typu podanego jako argument wejściowy.
(wskazówka: zakładamy że typ komunikatu jest liczbą z przedziału
< 1, 10 >).
Zadanie 19

Proszę napisać dwie aplikacje. Jedna ma pobierać od użytkownika
rozmiar bufora oraz klucz do pamięci współdzielonej. Następnie w
nieskończonej pętli pobierać ze standardowego wejścia słowa i
wpisywać do pamięci współdzielonej. Druga ma pobrać rozmiar
bufora oraz klucz do pamięci współdzielonej, a następnie w
nieskończonej pętli wyświetlać na standardowym wyjściu zawartość
pamięci współdzielonej. W przypadku zmiany zawartości program
powinien to zaznaczyć przy wyświetlaniu zawartości.
Zadanie 20

Napisz program tworzący dwa procesy komunikujące się poprzez
kolejkę komunikatów. Komunikacja polega na przesłaniu
komunikatów różnego typu. Proces odbierający powinien odbierać
tylko komunikaty typu podanego jako argument wejściowy.
(wskazówka: zakładamy że typ komunikatu jest liczbą z przedziału
< 1, 10 >).

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
20 ćwiczeń za 60zł
« Odpowiedź #1 dnia: 2014-05-18, 10:30:34 »
Jeżeli masz problem z #2 i #3, to nie chcę, żebyś skończył studia (zadanie o pthread sugeruje, że nie jesteś raczej na filozofii albo muzyce). Niezależnie od tego, co chesz po nich robić. Strony WWW, bazy danych czy cokolwiek innego związanego z informatyką bądź inżynierią w ogóle, a nie mającego nawet nic wspólnego z programowaniem. Zlecenie na #2 i #3 oznacza brak jakichkolwiek podstaw wiedzy, a przede wszystkim brak umiejętności korzystania z dokumentacji i własnej inwencji. Przy takich problemach będziesz wrzodem na tyłku każdego pracodawcy zatrudniającego Cię pod pretekstem informatyka/inżyniera.

Przy okazji, miejscem na takie posty jest bazar/zlecę.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline Lord Darius

  • Guru
  • *****
  • Wiadomości: 1162
    • Zobacz profil
20 ćwiczeń za 60zł
« Odpowiedź #2 dnia: 2014-05-19, 14:15:37 »
Przeniosłem do bardziej odpowiedniego działu.
Spójrz bez strachu na rzecz budzącą strach, a straszność sama zniknie.
cat /etc/debian_version