Использование Fedora 12: mkfifo pipe
создает канал.
Когда я использую следующий код, чтобы попытаться открыть поток ввода для именованного канала, он блокирует конструктор FileInputStream, если я не создаю записывающее устройство для канала, такое как открытие другого терминала и выполнение:
tee pipe
public static void main(String[] args){
try {
File pipe = new File("/tmp/pipes_debugging/pipeToJava");
System.out.println( pipe.canRead() );
FileInputStream fis = new FileInputStream(pipe);
System.out.println("exiting.");
} catch (Exception e) {
e.printStackTrace();
}
}
Выход:
true
<blocks - thread trace shown below>
Thread [main] (Suspended)
FileInputStream.open(String) line: not available [native method]
FileInputStream.<init>(File) line: 137
PipesDebugging.main(String[]) line: 12