sigaction.cpp

博客可能围绕Linux系统,结合C和C++语言展开相关信息技术内容,但因内容缺失,具体细节不明。
/*
 * function: 使用sigaction函数注册一个信号的捕捉函数
 *
 * 2020-12-26
 */

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>

// 信号的捕捉函数
void func(int signum)
{
    printf("hello world\n");

    return;
}

int main(int argc, char *argv[])
{
    struct sigaction act, oldact;
    act.sa_handler = func;    // 信号的捕捉函数的函数名
    sigemptyset(&act.sa_mask); // 清空sa_mask屏蔽字,只在func工作时有效
    act.sa_flags = 0;	// 默认值,使用默认属性

    int ret = sigaction(SIGINT, &act, &oldact); // 捕捉2号信号,产生条件按键Ctrl+c
    if (-1 == ret)
    {   
        perror("sigaction failed");
        exit(1);
    }   

    while(1);   // 等待信号产生
	
	return 0;
}

sigaction

1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(256,24): error : no match for call to ‘(std::ostream {aka std::basic_ostream<char>}) (const char [28])’ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(288,22): error : aggregate ‘CANopenMain::Impl::setupSignalHandling()::sigaction sa’ has incomplete type and cannot be defined 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(288,22): error : 288 | struct sigaction sa; 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(288,22): error : | ^~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(290,5): error : ‘sigemptyset’ was not declared in this scope 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(290,5): error : 290 | sigemptyset(&sa.sa_mask); 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(290,5): error : | ^~~~~~~~~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(293,19): error : ‘SIGINT’ was not declared in this scope 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(293,19): error : 293 | if (sigaction(SIGINT, &sa, NULL) == -1) { 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(293,19): error : | ^~~~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(293,36): error : invalid use of incomplete type ‘struct CANopenMain::Impl::setupSignalHandling()::sigaction’ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(293,36): error : 293 | if (sigaction(SIGINT, &sa, NULL) == -1) { 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(293,36): error : | ^ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(288,12): message : forward declaration of ‘struct CANopenMain::Impl::setupSignalHandling()::sigaction’ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(288,12): message : 288 | struct sigaction sa; 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(288,12): message : | ^~~~~~~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(296,19): error : ‘SIGTERM’ was not declared in this scope 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(296,19): error : 296 | if (sigaction(SIGTERM, &sa, NULL) == -1) { 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(296,19): error : | ^~~~~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(296,37): error : invalid use of incomplete type ‘struct CANopenMain::Impl::setupSignalHandling()::sigaction’ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(296,37): error : 296 | if (sigaction(SIGTERM, &sa, NULL) == -1) { 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(296,37): error : | ^ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(288,12): message : forward declaration of ‘struct CANopenMain::Impl::setupSignalHandling()::sigaction’ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(288,12): message : 288 | struct sigaction sa; 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(288,12): message : | ^~~~~~~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(359,28): warning : conversion from ‘std::vector<CO_storage_entry_t>::size_type’ {aka ‘long unsigned int’} to ‘uint8_t’ {aka ‘unsigned char’} may change value [-Wconversion] 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(359,28): warning : 359 | storageEntries.size(), 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(359,28): warning : | ~~~~~~~~~~~~~~~~~~~^~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(544,13): warning : conversion from ‘__syscall_slong_t’ {aka ‘long int’} to ‘uint32_t’ {aka ‘unsigned int’} may change value [-Wconversion] 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(544,13): warning : 544 | time_ms += ts.tv_nsec / 1000000; 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(544,13): warning : | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(647,9): error : ‘sync’ was not declared in this scope 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(647,9): error : 647 | sync(); 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(647,9): error : | ^~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(685,19): error : ‘getopt’ was not declared in this scope; did you mean ‘getpt’? 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(689,38): error : ‘optarg’ was not declared in this scope 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(689,38): error : 689 | long int nodeId = strtol(optarg, NULL, 0); 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(689,38): error : | ^~~~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(697,39): error : ‘optarg’ was not declared in this scope 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(697,39): error : 697 | config.commandInterface = optarg; 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\CANopenMain.cpp(697,39): error : | ^~~~~~ 1>main_master.cpp 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\..\62-dp\CANopenLinux\CANopenNode\301\CO_ODinterface.h(396,24): warning : conversion from ‘unsigned int’ to ‘uint8_t’ {aka ‘unsigned char’} may change value [-Wconversion] 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\..\62-dp\CANopenLinux\CANopenNode\301\CO_ODinterface.h(396,24): warning : 396 | uint8_t mask = ~(1U << (subIndex & 0x07U)); 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\..\62-dp\CANopenLinux\CANopenNode\301\CO_ODinterface.h(396,24): warning : | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(40,5): error : ‘va_start’ was not declared in this scope 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(40,5): error : 40 | va_start(ap, format); 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(40,5): error : | ^~~~~~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(58,5): error : ‘va_copy’ was not declared in this scope; did you mean ‘ap_copy’? 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(58,5): error : 58 | va_copy(ap_copy, ap); // ���Ʋ����б����ڽ��� 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(58,5): error : | ^~~~~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(58,5): error : | ap_copy 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(65,48): error : expected primary-expression before ‘const’ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(65,48): error : 65 | const char* data = va_arg(ap_copy, const char*); 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(65,48): error : | ^~~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(65,32): error : ‘va_arg’ was not declared in this scope 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(65,32): error : 65 | const char* data = va_arg(ap_copy, const char*); 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(65,32): error : | ^~~~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(76,41): error : expected primary-expression before ‘void’ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(76,41): error : 76 | void* arg = va_arg(ap_copy, void*); 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(76,41): error : | ^~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(76,25): error : ‘va_arg’ was not declared in this scope 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(76,25): error : 76 | void* arg = va_arg(ap_copy, void*); 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(76,25): error : | ^~~~~~ 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(107,9): error : ‘va_end’ was not declared in this scope 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(107,9): error : 107 | va_end(ap_copy); 1>C:\shui\web\comm\x86\bb\aaa-demo\72-dp\11-dp\11-dp\..\..\main_master.cpp(107,9): error : | ^~~~~~ 1>已完成生成项目“11-dp.vcxproj”的操作 - 失败。
10-31
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值