繁体   English   中英

在C ++ 11中,signal.h标头没有kill功能

[英]In C++11 the signal.h header has no kill function

我刚刚尝试用C ++ 11模式使用Gnu g ++编译我之前编写的代码,以查看代码是否很快需要进行重新处理(出于相同的原因,我也计划在C ++ 17模式下对其进行测试)。

我发现kill()函数导致了编译器错误,而且kill。函数似乎不再存在于signal.h标头中。

我只是看了http://www.cplusplus.com/reference/csignal/作为参考,似乎证实这不仅是特定于Gnu的遗漏,而且似乎已经成为标准。

我在任何地方都找不到这种遗漏的理由,也找不到关于如何管理这种遗漏的建议。 谁能指出我正确的方向?

C ++标准功能raise

kill是需要POSIX进程ID pid_t的POSIX函数,在C ++标准中不需要。

好的,我太快地提出了这个问题,当然fork / kill等一开始并不是C ++标准的一部分,而是在类Unix平台上的常见补充。

我的真正问题是我使用了错误的编译器开关。 对于遇到此问题的其他人,要获得严格的C ++ 11标准,请使用:

g++ -std=c++11

但是要获得C ++ 11标准和非标准扩展,请使用:

g++ -std=gnu++11

使用后者,我可以构建并调用fork / kill没问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM