我正在Unix环境的Advanced Programming中尝试此程序。
#include<stdio.h>
#include<signal.h>
static void handler(int sig){
if(sig == SIGUSR1)
printf("handled user1 signal");
else if(sig == SIGUSR2)
printf("handles user2 signal");
else
printf("unkown signal");
}
int main(){
if(signal(SIGUSR1, handler) == SIG_ERR)
printf("can't handle signal SIGUSR1");
if(signal(SIGUSR2, handler) == SIG_ERR)
printf("can't handle signal SIGUSR2");
for(;;)
pause();
return 0;
}
我正在使用Ubuntu 11.10。我用gcc编译程序,然后按照书中的说明运行a.out。
$。/ a.out&[1] + 1345
$ kill -USR1 1345
但是没有输出输出。该程序一直在后台运行,我必须杀死它。
我尝试过的其他方法:
尝试处理SIGINT以查看在后台运行程序是否引起问题。仍然没有输出。
下载了最新版的FreeBSD,并尝试了相同的程序,但是存在相同的问题。
我在设置信号处理程序之前放了一个printf语句:
int main(){
printf("printf is working...");
//exit(0);
if(signal(SIGUSR1, handler) == SIG_ERR)
...
注释exit()时,没有输出。当我取消注释时,将输出输出。
请告诉我我在做什么错了?
PS:不建议使用sigaction()。我正在学习Unix编程,而不是构建任何实际应用程序。
的输出printf
被缓冲。这意味着它将存储在内存中,直到刷新到输出为止。刷新文本的最佳方法printf
是用换行符结束文本。您也可以使用该fflush
功能手动刷新。
但是,应注意,在信号处理程序中使用printf
和等输出函数fflush
并不安全。
本文向大家介绍Rust 没有宏的控制台输出,包括了Rust 没有宏的控制台输出的使用技巧和注意事项,需要的朋友参考一下 示例 该std::io::Write特征是为接受字节流的对象设计的。在这种情况下,使用获取标准输出的句柄。std::io::stdout() Write::write()接受由字节&[u8]字面量(b"<string>")创建的字节片()。返回一个,其中包含写入的字节数(成功)或
我正在使用Flutter+Android Studio/Intellij Flutter插件。当我在IDE中运行我的应用程序时,似乎有一个空的控制台窗口,因此我无法从该窗口查看我的语句。 我能够查看tomcat日志中的输出,所以我不会被这个问题所阻碍。我的运行窗口没有输出/功能有什么原因吗? 更新
我在试着用Kotlin的micronaut。我有这个: 我写了以下控制器测试: 但是测试失败,出现。 我已经对此进行了调试,在测试期间,从我所知的情况来看,在中没有找到限定符的bean。当我使用类启动应用程序时,我可以看到它找到并使路由可用。 这几乎是微型机器人的Hello世界,我不确定这里出了什么问题。
本文向大家介绍Dubbo的管理控制台能做什么?相关面试题,主要包含被问及Dubbo的管理控制台能做什么?时的应答技巧和注意事项,需要的朋友参考一下 管理控制台主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能。
我试图输出到一个Kinesis流,或一个S3文件。什么都没有记录。 我还尝试写到一个HDFS文件。在本例中,创建了一个文件,但大小为0。我确信输入文件已经使用一个简单的检查进行了处理: 它生成了一个异常。 我在这里漏掉了什么?