mkfifo
просто не работает с Cygwin? Простой набор команд, например
$ mkfifo my_pipe
$ echo "1234" > my_pipe
просто заставляет терминал сидеть вечно с мигающим курсором. Я "делаю это неправильно"?
mkfifo
просто не работает с Cygwin? Простой набор команд, например
$ mkfifo my_pipe
$ echo "1234" > my_pipe
просто заставляет терминал сидеть вечно с мигающим курсором. Я "делаю это неправильно"?
Нет, вы не делаете ничего плохого с любой из этих команд, просто ваши ожидания немного не соответствуют действительности.
Что вы упускаете, так это что-то на другом конце этого канала, считывающее эти данные. Это очевидное зависание происходит и в Linux, так что это не проблема CygWin (или вообще какая-то проблема).
Просто откройте другое окно и введите:
cat <my_pipe
и вы увидите, как появятся данные, а затем завершится исходное echo
.
Суть именованных каналов в том, что вам нужно иметь что-то на обоих концах. Вы не можете писать в канал, если он еще не завершен, поэтому команда echo
зависает до тех пор, пока что-то еще не попытается прочитать из этого канала, чего в вашем случае никогда не происходит.