Записать в файл fifo

Я создал файл, используя mkfifo /tmp/my.fifo. Теперь я хочу записать символы в файл (с помощью Objective C), чтобы иметь возможность захватить их tail -f /tmp/my.fifo. По какой-то причине это не работает. Команда tail отображает только один символ, а затем останавливает вывод.

Объективный код C:

NSError *error = nil;

[buffer writeToFile:@"/tmp/my.fifo" atomically:YES encoding:NSUTF8StringEncoding error:&error];
if(error){
    NSLog(@"Fail: %@",[error localizedDescription]);
}

NSLog ничего не выводит. Итак, с точки зрения Objective C, очевидно, нет ошибки.


person gorootde    schedule 02.12.2013    source источник


Ответы (1)


Решение оказалось проще, чем я думал:

NSFileHandle *fileHandle=[NSFileHandle fileHandleForWritingAtPath:@"/tmp/my.fifo"];
[fileHandle seekToEndOfFile];
[fileHandle writeData:[buffer dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
person gorootde    schedule 02.12.2013