让我的一些代码从Bash改编为C ++,我不知道为什么它总是返回FALSE。
#include <iostream>
#include <stdlib.h>
int main() {
if ( system ("grep -q zswap.enabled=1 /etc/default/grub") ) {
std::cout << " zswap.enabled=1 ?: Yes\n";
}
else {
std::cout << " zswap.enabled=1 ?: No\n";
}
return 0;
}
答案 0 :(得分:5)
因为Bash将0解释为“成功”,而C ++将其解释为“false”。这是一个令人烦恼的历史事件,但绝不是将冗长的shell脚本移植到C / C ++时会遇到的最烦人的事情。