linux下c/c++程序重启自己
在程序自动升级的时候需要自己重新启动自己示例代码:点击(此处)折叠或打开#include unistd.h>#include stdio.h>#include stdlib.h>int
·
在程序自动升级的时候需要自己重新启动自己
示例代码:
点击(此处)折叠或打开
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
- int main(int argc, char **argv)
- {
- char buf[32] = {};
- char *exec_argv[] = { argv[0], buf, 0 };
- int count = argc > 1 ? atoi(argv[1]) : 0;
- printf("Running: %s %d\n", argv[0], count);
- snprintf(buf, sizeof(buf), "%d", count+1);
- sleep(5);
- execv("/proc/self/exe", exec_argv);
- /* NOT REACHED */
- return 0;
- }
zengming@linux-eshv:~/test> g++ main.cpp
zengming@linux-eshv:~/test> ./a.out 1
Running: ./a.out 1
Running: ./a.out 2
Running: ./a.out 3
^C
Linux开发全面指南
Linux作为最流行的开源操作系统,在服务器、嵌入式系统和云计算领域占据主导地位。以下是Linux开发的全面技术指南。
Linux系统架构基础
Linux内核组成模块
- 进程调度子系统
- Completely Fair Scheduler (CFS)
- Real-time调度类(sched_fifo/sched_rr)
- cgroups v2资源控制接口
- 内存管理
- Buddy System物理内存分配器
- Slab/Slub分配器内核对象缓存
- OOM Killer机制及调优参数(/proc/sys/vm/overcommit_memory)
- 虚拟文件系统(VFS)
- Ext4/Btrfs/XFS等文件系统实现差异对比表:
| Feature | Ext4 | Btrfs | XFS |
|---|---|---|---|
| Max FS Size | 1EB | 16EB | 8EB |
| Checksum | No | Yes | Metadata only |
| Snapshots | No | Yes | No |
- 网络协议栈
- Netfilter框架(iptables/nftables)
- eBPF对网络层的扩展能力(XDP技术)
程序员群:31843264
更多推荐
所有评论(0)