Pisanie sprawdzarki zadań na macOS

Odpowiedz Nowy wątek
2018-09-13 22:45
Mistrzowski Rycerz
0

Witam, szukam pomocy przy pisaniu sprawdzarki do zadań w C++, sposób działania bez większej filozofii, chciałbym żeby odczytywała cały folder plików .in(wtedy taki pojedynczy plik jest przepuszczany przez program zawierający mój algorytm a następnie zwraca wynik do programu macierzystego) a następnie zapisywała wynik do pliku .out i opcjonalnie wypisywała informacje czy w pliku wygenerowanym przez mój algorytm znajduje się ten sam wynik co w pliku z paczki testów. Jednak to ostatnie to najmniejszy problem bo myślę, że będę w stanie zrobić to bez problemu.

Powód dla którego tutaj piszę jest taki, że nie za bardzo umiem napisać pomost pomiędzy dwoma programami. Tak jak wcześniej wspomniałem idea jest taka, że sprawdzarka to osobny program(ponieważ chce żeby była uniwersalna, pisanie osobnych sprawdzarek dla każdego problemu jest monotonne) z kolei sprawdzarka odczytuje serie plików wejściowych i je przekierowuje do nowo odpalonego procesu z moim algorytmem.

To w jaki sposób sprawdzarka będzie otwierała pliki .in jest dla mnie mniej istotne bo mogę to zrobić na siłę i przy starcie sprawdzarki podawać ścieżkę do folderu z plikami .in

Zależy mi najbardziej na tym pomoście, znalazłem przykładowe programy korzystające z funkcji pipe() i fork() jednak to nie rozwiąże mojego problemu bo z tego co się dowiedziałem proces dziecko jaki jest otwierany jest identyczny a przy odpowiednim napisaniu programu odpala po prostu inne funkcje poprzez weryfikację swojego identyfikatora. Być może istnieją jakieś funkcje/biblioteki, które oferują otworzenie pomostu między programem macierzystym a programem do którego podamy ścieżkę, jednak nie natrafiłem na takie.

edytowany 1x, ostatnio: furious programming, 2018-09-13 23:10

Pozostało 580 znaków

2018-09-14 00:17
3

a czemu nie skrypt w shellu z prostym for loopem, cos w stylu:

for f in input/*.in; do
  # rozszerzenie mozesz zmienic
  foo < $f > actual/$(basename $f).out
  # np. comm do porownania plikow
done

░█░█░█░█░█░█░█░█░█░█░█░
edytowany 2x, ostatnio: krwq, 2018-09-14 00:18

Pozostało 580 znaków

2018-09-14 17:47
Mistrzowski rycerz
0

Myślałem o tym, ale kompletnie nie ogarniam shella, rozumiem ze to odczytuje serie plików z jednego folderu i i dla każdego odpala proces z moim algorytmem?

Pozostało 580 znaków

2018-09-15 02:56
0

@Mistrzowski rycerz nie musisz się całej składni uczyć, tylko szukaj tego co chcesz zrobić


░█░█░█░█░█░█░█░█░█░█░█░

Pozostało 580 znaków

2018-09-15 11:39
Smutny Szczur
0

W sumie.. Dzięki za pomoc.

Pozostało 580 znaków

2018-09-17 01:56
0

Poszukaj na stronie sio2.mimuw.edu.pl, w archiwach olimpiady informatycznej (dowolnej edycji), pliku ocen-macos.zip (lub podobnego, a jeśli źle pamiętam, to z pewnością istnieje wersja na linuksa, która z tego co pamiętam działała na MacOSie, to w końcu jest tylko skrypt w Bashu). Być może trzeba utworzyć konto na serwisie.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0