Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“如何重定向到沙盒使用”;printf";在iOS中?_Ios_Printf_Stdout_Fclose_Freopen - Fatal编程技术网

“如何重定向到沙盒使用”;printf";在iOS中?

“如何重定向到沙盒使用”;printf";在iOS中?,ios,printf,stdout,fclose,freopen,Ios,Printf,Stdout,Fclose,Freopen,在iOS开发中,我想测试日志到本地文件的输出。使用重定向可以将“NSLog”输出到文件,但是如果在使用freopen时使用“printf”输出([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],“a+”,stdout)无法执行。有没有办法使“printf”的输出也重定向到日志中?我有很好的答案 您可以使用freopen的dup2实例,只需执行以下操作: //将缓冲区禁止 setvbuf(标准输出,空,0) //用创建的文件描述符替换

在iOS开发中,我想测试日志到本地文件的输出。使用重定向可以将“NSLog”输出到文件,但是如果在使用
freopen时使用“printf”输出([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],“a+”,stdout)无法执行。有没有办法使“printf”的输出也重定向到日志中?

我有很好的答案

您可以使用
freopen
dup2
实例,只需执行以下操作:

//将缓冲区禁止

setvbuf(标准输出,空,0)

//用创建的文件描述符替换掉 标准输出和错误输出

//忽略logFilePath(只是一个文件地址)。

int fd=open([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],(O_RDWR | O_CREAT),0644)

dup2(fd,标准文件号)

dup2(fd,标准文件号)

然后在
NSLog
printf
之间将重定向到您的本地服务器