当前位置: 技术问答>linux和unix
请教:unix下c程序输出控制与重定向用于调试
来源: 互联网 发布时间:2016-07-28
本文导语: unix上运行的c程序,能否通过向它发送特定信息或信号,控制它程序内部的打印标志,以输出不同的调试信息?此外,能否在当前终端窗口运行一个类似接收程序的小程序,从而控制上面所述的c程序输出的调试信息输...
unix上运行的c程序,能否通过向它发送特定信息或信号,控制它程序内部的打印标志,以输出不同的调试信息?此外,能否在当前终端窗口运行一个类似接收程序的小程序,从而控制上面所述的c程序输出的调试信息输出到当前终端的窗口?这样便于观察调试输出信息?请教了
|
demo > demo.log &
tail -f demo.log
tail -f demo.log
#include
#include
#include
static volatile sig_atomic_t debug = 0;
/* ARGSUSED */
static void
sig_usr1(int sig)
{
(void)signal(SIGUSR1, &sig_usr1);
debug++;
debug %= 8;
}
/* ARGSUSED */
int
main(int argc, char *argv[])
{
(void)signal(SIGTTOU, SIG_IGN);
(void)signal(SIGUSR1, &sig_usr1);
for ( ; ; ) {
(void)sleep(5);
(void)printf("debug=%dn", (int)debug);
(void)fflush(stdout);
}
/* NOTREACHED */
return 0;
}
|
demo > demo.log &
tail -f demo.log
tail -f demo.log
#include
#include
#include
static volatile sig_atomic_t debug = 0;
/* ARGSUSED */
static void
sig_usr1(int sig)
{
(void)signal(SIGUSR1, &sig_usr1);
debug++;
debug %= 8;
}
/* ARGSUSED */
int
main(int argc, char *argv[])
{
(void)signal(SIGTTOU, SIG_IGN);
(void)signal(SIGUSR1, &sig_usr1);
for ( ; ; ) {
(void)sleep(5);
(void)printf("debug=%dn", (int)debug);
(void)fflush(stdout);
}
/* NOTREACHED */
return 0;
}