Wpis z mikrobloga

Macie pomysł jak napisać funkcję zachowującą się podobnie do polecenie tee? Głównie chodzi mi o to w jaki sposób interpretować sytuację, kiedy jako jeden z argumentów funkcji chciałbym zamiast tekstu wpisać komendę systemową, np ls, tak aby została właściwie zinterpretowana

#programowanie #programujzwykopem #linux
  • 10
@Rizzo: to nie ma nic wspólnego z poleceniem tee. Równie dobrze możesz użyć cat, sort, tr, sed i tysięcy innych poleceń. Odpaleniem ls -l zajmuje się powłoka, i to ona przekazuje strumień do następnego polecenia (czy tu będzie tee, cat, czy cokolwiek innego - dla powłoki to wszystko jedno).

W C możesz użyć execve albo podobnych funkcji do odpalenia procesu, ale napisz dokładnie co chcesz zrobić, bo z tego co piszesz
@tell_me_more: Prawdopodobnie źle się wyraziłem, dopiero się tego wszystkiego uczę i ciężko jest zacząć mówiąc szczerze.

Mam napisać porgram, który działa zgodnie z domyślnym zachowaniem polecenia tee
@Rizzo: to robisz pętlę, czytasz strumień wejściowy, wypisujesz do strumienia wyjściowego i do pliku o nazwie podanej w parametrze. Nie musisz zajmować się odpalaniem poleceń, bo bash (czy inna powłoka, której używasz zrobi to za Ciebie).

Przykład:

echo "1 2 3" | ./twojProgram nazwaPliku

ls -la | ./twojProgram nazwaPliku

w obu przypadkach Twój program nie będzie miał pojęcia, co działo się przed pałką - dostanie po prostu od powłoki wynik działania