我正在使用域套接字从另一个进程获取值,比如A从B获取值,它可以运行好几个月.但是最近,A在"发送"消息期间失败,并且偶尔会出现"errno 111,连接被拒绝".
我检查了B域套接字绑定文件,它存在.我也在另一台机器上做了一些测试,也运行良好.那么,之前有没有人遇到过这个问题?任何人都可以找到一些可能在这种情况下可能出错的线索吗?非常感谢.
最近,我需要将单元测试添加到一个遗留程序中.
但在其中,有很多宏,比如
#ifdef CONFIG_XXX
do xxx
#endif
#ifdef CONFIG_YYY
do yyy
#endif
Run Code Online (Sandbox Code Playgroud)
目前,通用程序路径由单元测试覆盖.所以,我想添加测试来覆盖内部宏部分(不同的程序路径).
似乎我需要每次都用某些宏编译和运行我的程序,如何设计宏的组成来覆盖程序路径并减少编译时间真的不容易.
因此,我计划将所有与硬件相关的代码移动到arch文件夹,现在,宏已从c文件移到makefile,但仍需要每次使用某些宏进行编译才能使UT工作.
有没有人有过这方面的经验?
感谢您的意见.
以下是一个代码段
#define T 0xFF
using namespace std;
int main(void) {
char c = T;
bool *pc = (bool *)(&c);
bool nc = !(*pc);
cout << "print: " << hex << nc << endl;
nc = T;
cout << "print: " << hex << nc << endl;
nc = c;
cout << "print: " << hex << nc << endl;
}
Run Code Online (Sandbox Code Playgroud)
结果是
print: fe
print: 1
print: 1
Run Code Online (Sandbox Code Playgroud)
如果使用值0xFF将char转换为bool,则bool值为1.
但是当类型转换为指向bool指针的char指针时,0xFF变为0xFE,只有最后一位被翻转!操作.
似乎gcc假定bool为0或1并且如果没有调用bool对象的构造函数,它将只解释内存以包含bool并翻转最低有效位.
但是当bool由char设置时,是否会触发复制构造函数?但为什么不同?