当前位置: 首页 > news >正文

苏州建站公司哪个济南兴田德润实惠吗/新媒体seo培训

苏州建站公司哪个济南兴田德润实惠吗,新媒体seo培训,医疗网站建设基本流程,微信转账做网站收款1. 什么是进程? 进程就是运行中的程序,是系统资源分配的基本单位 每个进程都有唯一的PID(进程ID) 进程有父子关系,通过ps -ef可以查看 2. 进程的创建 - fork() pid_t pid fork(); - 简单理解:fork()…

1. 什么是进程?

  • 进程就是运行中的程序,是系统资源分配的基本单位
  • 每个进程都有唯一的PID(进程ID)
  • 进程有父子关系,通过ps -ef可以查看

2. 进程的创建 - fork()

pid_t pid = fork();

- 简单理解:fork()就像细胞分裂,一个变两个

  • 调用一次,返回两次:父进程得到子进程PID,子进程得到0
  • 子进程是父进程的复制品

3. 进程的程序替换 - exec族

execl("/bin/ls", "ls", "-l", NULL);

- 保留进程ID,但内容完全变成新程序

  • 就像换灵魂:外壳不变,内在全变
  • 常用函数:execl, execlp, execle, execv, execvp等

4. 进程的等待与回收 - wait/waitpid

pid_t wait(int *status);pid_t waitpid(pid_t pid, int *status, int options);

- 父进程等待子进程结束并回收资源

  • 避免僵尸进程(zombie)的产生
  • waitpid比wait更灵活,可以非阻塞等待

5. 进程的退出

exit(0);    // 标准C库函数

_exit(0);   // 系统调用

  • exit会刷新缓冲区,exit直接退出
  • 返回值0表示正常退出

一. 文件操作与I/O

1. 文件描述符

  • 就像文件的"身份证号码"
  • 标准输入(0)、标准输出(1)、标准错误(2)
  • 每个进程最多可打开的文件数有限制

2. 文件操作基本函数

// 打开文件int fd = open("test.txt", O_RDWR | O_CREAT, 0644);// 读取文件char buf[1024];int n = read(fd, buf, sizeof(buf));// 写入文件write(fd, "hello", 5);// 关闭文件close(fd);// 文件指针定位lseek(fd, 0, SEEK_SET);  // 回到文件开头

3. 文件属性获取

struct stat st;stat("file.txt", &st);- 获取文件大小:st.st_size
  • 判断文件类型:S_ISREG(st.st_mode)、S_ISDIR(st.st_mode)

4. 目录操作

DIR *dir = opendir(".");struct dirent *entry;while ((entry = readdir(dir)) != NULL) {printf("%s\n", entry->d_name);}closedir(dir);

三、进程间通信(IPC)

1. 管道通信

int fd[2];pipe(fd);  // fd[0]读端,fd[1]写端
  • 单向通信:水管模型,一端进一端出
  • 只能用于有亲缘关系的进程
  • 适合简单的数据传输

2. 命名管道(FIFO)

// 创建命名管道mkfifo("myfifo", 0644);// 使用方法与普通文件类似int fd = open("myfifo", O_WRONLY);

- 可用于无关进程间通信

  • 遵循先进先出原则

3. 信号通信

// 信号处理函数void sig_handler(int signo) {printf("收到信号: %d\n", signo);}// 设置信号处理signal(SIGINT, sig_handler);

- 常见信号:

  • SIGINT (2): Ctrl+C中断
  • SIGKILL (9): 强制终止(不可捕获)
  • SIGTERM (15): 终止信号
  • SIGCHLD (17): 子进程状态改变
  • SIGALRM (14): 定时器到期

四、实用示例

1. 创建守护进程

void daemonize() {pid_t pid = fork();if (pid < 0) exit(1);if (pid > 0) exit(0);  // 父进程退出setsid();  // 创建新会话// 关闭标准输入输出错误close(0);close(1);close(2);// ...更多操作}

2. 简单shell实现

while (1) {printf("myshell> ");fgets(cmd, sizeof(cmd), stdin);if (fork() == 0) {// 子进程执行命令execlp(cmd, cmd, NULL);exit(0);} else {// 父进程等待wait(NULL);}}

五、常见错误与调试技巧

1. 经典错误

  • 僵尸进程:子进程结束但未被回收
  • 孤儿进程:父进程先于子进程结束
  • 内存泄漏:申请的内存未释放
  • 文件描述符泄漏:打开文件未关闭

2. 调试工具

  • strace:跟踪系统调用
  • gdb:代码调试器
  • valgrind:内存错误检测
  • lsof:查看打开的文件

http://www.whsansanxincailiao.cn/news/32047824.html

相关文章:

  • 在线网站做成app/广州网站排名优化报价
  • 设计之家微博/seopeixun com cn
  • 帝国cms手机网站教程/阿亮seo技术顾问
  • 花生壳一个端口做网站/产品营销方案
  • 开发一个网站平台多少钱/百度指数是搜索量吗
  • 灰产项目网/厦门百度seo
  • 塘厦网站建设/舆情分析报告
  • 公司网站优点/游戏推广话术
  • 住房和城乡建设部网站加装电梯/网课培训机构排名前十
  • 标准企业网站开发合同/模板建站哪里有
  • 网站项目评价/百度关键词搜索技巧
  • 江苏建筑工程网/域名年龄对seo的影响
  • 无锡网站建设公司/客服外包平台
  • 商丘网站建设有限公司/嘉兴网站建设制作
  • 网站开发合同书/企业培训有哪些方面
  • 网站 为何要 备案/百度导航最新版本下载安装
  • wordpress paypal转账/洛阳seo网站
  • 建设网站服务器选择/企业网站页面设计
  • 网站建设 开发票/全网关键词指数查询
  • 花生壳做网站缺点/软文网站模板
  • 温州网站制作价格/怎样精选关键词进行网络搜索
  • 公司做环评的网站/美工培训
  • 有没有做策划案例的网站/品牌策划推广方案
  • 烟台住房和城乡建设厅网站/seo学校培训
  • 合肥浦发建设集团网站/重庆广告公司
  • 厦门网站优化/广告营销方式有哪几种
  • wordpress忘了秘密/阿里巴巴怎么优化关键词排名
  • 怎么做网站可以注册的/域名怎么查
  • 网站建设公司 知乎/青岛百度整站优化服务
  • 网站建设 步骤/长沙网站seo收费