我需要實時讀取日誌文件的最後一行,並捕獲要添加的行。如何使用NSTask獲得類似於Tail -f的內容
類似於尾巴-f的東西。
因此,我第一次嘗試使用Nfask使用Tail -f。
使用下面的代碼,我看不到任何輸出:
NSTask *server = [[NSTask alloc] init];
[server setLaunchPath:@"/usr/bin/tail"];
[server setArguments:[NSArray arrayWithObjects:@"-f", @"/path/to/my/LogFile.txt",nil]];
NSPipe *outputPipe = [NSPipe pipe];
[server setStandardInput:[NSPipe pipe]];
[server setStandardOutput:outputPipe];
[server launch];
[server waitUntilExit];
[server release];
NSData *outputData = [[outputPipe fileHandleForReading] readDataToEndOfFile];
NSString *outputString = [[[NSString alloc] initWithData:outputData encoding:NSUTF8StringEncoding] autorelease];
NSLog (@"Output \n%@", outputString);
我可以看到輸出如預期使用時:
[server setLaunchPath:@"/bin/ls"];
我如何能捕捉的輸出那尾巴NSTask?
是否有任何替代方法,我可以打開一個流到文件,每次添加一行,輸出到屏幕上? (基本日誌記錄功能)
是否有必要呼籲每一個`fseek`通過循環?即使在`fgetc`返回`EOF`之後,是否有必要調用它? – benzado 2011-01-12 23:14:41