为什么gret在C ++中没有返回TRUE?

时间:2014-10-22 14:16:38

标签: c++

让我的一些代码从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;
}

1 个答案:

答案 0 :(得分:5)

因为Bash将0解释为“成功”,而C ++将其解释为“false”。这是一个令人烦恼的历史事件,但绝不是将冗长的shell脚本移植到C / C ++时会遇到的最烦人的事情。