C++ 功能使用技巧

1. 通过C执行shell指令,比如,在代码中查找进程名称,并进行终止

2.单实例线程操作

1. 要点

snprintf 函数被用于构建一个包含多个命令的字符串

在C语言中,system函数用于执行shell命令

在C或C++编程中,::mkdir 函数用于创建一个新的目录

该例子中,编译生成的进程名称为motion_realmachine

void system_kill_last() {
    // GDB 调试时,不用杀掉,否则会退出GDB
    char* pathVar = getenv("_");
    if (pathVar != NULL) {
        if (0 == strcmp(pathVar, "/usr/bin/gdb")) {
            printf("# GDB _=[%s]\n", pathVar);
            return;
        }
    }
    // 清理残余线程
    char kill_command[256] = {0x00};
    snprintf(kill_command, sizeof(kill_command),
            "sudo true ; ps -aux | grep motion_realmachine | grep -v grep | grep -v %d | "
            "awk '{print $2}' | xargs -r sudo kill -9",
            gettid()
    );
    // std::cout << "kill_command: " << kill_command << std::endl;
    int ret = system(kill_command);
    if (0 == ret) {
        sleep(1);
    }
}




int main(int argc, char *argv[]) {
    system_kill_last();
    return 0;
}
ret = ::mkdir("/tmp/er", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
  • ret 是一个变量,用于存储mkdir函数的返回值。如果目录成功创建,mkdir通常返回0;如果失败,则返回-1,并设置errno以指示错误类型。
  • "/tmp/er" 是你想要创建的目录的路径。
  • S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH 是权限设置,这些宏在<sys/stat.h>中定义。具体来说:
    • S_IRWXU 代表用户(文件所有者)具有读、写和执行权限。
    • S_IRWXG 代表组具有读、写和执行权限。
    • S_IROTH 代表其他用户具有读权限。
    • S_IXOTH 代表其他用户具有执行权限。
    • 通过将这些宏使用位或运算符(|)组合,你为新目录设置了非常宽松的权限:所有者、组成员和其他用户都可以读、写和执行该目录(尽管S_IROTHS_IXOTH在这里可能有些多余,因为通常不会给其他用户写权限)。

2. 链接如下:

c++线程测试例程_ubuntu c++ sleep-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值