Tag: ioredirect

如何捕获system()启动的进程的标准输出

如何将system("openssl enc -aes-128-cbc -k secret -P -md sha1 > FILENAME")输出system("openssl enc -aes-128-cbc -k secret -P -md sha1 > FILENAME")到文件中。 我已经尝试了以下内容: NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", documentsDirectory]; NSString *str=[NSString stringWithFormat:@"openssl enc -aes-128-cbc -k secret -P -md sha1 > %s",[fileName UTF8String]]; NSLog(@"AES Key is %@",str); […]

在没有debugging器的情况下,标准输出redirect在iOS中不起作用

我正在尝试redirect输出,所以我可以通过networking发送它。 由于某种原因,如果在debugging器连接的时候运行代码,它完美的工作。 一旦以正常的方式启动应用程序,代码会冻结读取函数,并且永远不会返回。 如果有人有任何指示,我会高度赞赏它。 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^(void) { static int pipePair[2]; if ( pipe(pipePair) != 0) { return; } dup2(pipePair[1],STDOUT_FILENO); while (true) { char * buffer = calloc(sizeof(char), 1024); ssize_t readCount = read(pipePair[0],buffer,1023); if (readCount > 0) { buffer[readCount] = 0; NSString * log = [NSString stringWithCString:buffer encoding:NSUTF8StringEncoding]; //sent it over network } if (readCount […]