Objective c 写入fifo文件

Objective c 写入fifo文件,objective-c,fifo,mkfifo,Objective C,Fifo,Mkfifo,我使用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];

我使用
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不输出任何内容。所以从目标C的角度来看,显然没有错误。

解决方案比我想象的要简单:

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