我C编码的一个程序,用printf将消息发送到标准输出和我无法将输出重定向到一个文件(从bash中运行).
我试过了:
./program argument >> program.out
./program argument > program.out
./program >> program.out argument
./program > program.out argument
Run Code Online (Sandbox Code Playgroud)
在每种情况下,都会创建文件program.out但它仍然为空.执行结束后,文件大小为0.
如果我在执行程序时省略重定向:
./program argument
Run Code Online (Sandbox Code Playgroud)
然后,使用printf发送到stdout的所有消息都显示在终端中.
我有其他C程序,我没有问题以这种方式重定向输出.它与程序本身有关吗?与论点传递?应该在哪里寻找问题?
关于C程序的一些细节:
一些代码:
int main(int argc, char** argv)
{
printf("Execution started\n");
do
{
/* lots of printf here */
} while (1);
/* Code never reached */
pthread_exit(EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)