Jaki jest najlepszy sposób bezpośredniego potokowania wyjścia NSTask do pliku? Chcę przejść przez jak najmniejszą liczbę buforów w pamięci.
Odpowiedzi:
2 dla odpowiedzi № 1Przed uruchomieniem NSTask
ustaw standardowe wyjście i standardowy błąd (setStandardOutput:
, setStandardError:
) do NSFileHandle
dla pliku wyjściowego (lub plików, jeśli chcesz inny dla każdego pliku wyjściowego).
Na NSFileHandle
jest tylko opakowaniem dla podstawowego deskryptora pliku systemu operacyjnego i NSTask
wykona odpowiednią pracę, aby podłączyć to do określonego wyjścia (tzn. najprawdopodobniej wykona dup (2)). Nie należy wprowadzać pośrednich buforów pamięci.
Kiedyś NSTask
po uruchomieniu można (i należy) zamknąć NSFileHandle
w twoim kodzie.