以下计划:
#include <stdlib.h>
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
int main() {
fclose( stderr );
printf( "%d\n", fileno( stderr ) );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
显示-1在Ubuntu 11.04和2对ICS 4.0.3模拟器.找不到有关此问题的任何信息 - 我可以在两个平台上使此代码的工作类似吗?freopen上stderr有同样的问题.
更新:
以前的小程序演示了我遇到的实际问题的原因:如果我尝试freopen stderr在不存在的目录中存档,在linux stderr上关闭但在android上它保持打开状态!甚至更多 - 如果我在这个打开的stderr文件中写smth 然后fopen在其他文件stderr上写,我打印的文本将写入此打开的文件.
那么,这个程序:
#include <stdlib.h>
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
# define LOGD( ... ) printf( __VA_ARGS__ ); printf( "\n" )
# ifdef ANDROID
# define HOMEDIR "/data/data/com.myapp/" …Run Code Online (Sandbox Code Playgroud)