Linux实验一

#include <stdio.h>

#include <stdlib.h>

int main() {

    printf("hello ,\n");

    printf("world\n");

    

    // 使用 exit(0) 结束进程

    exit(0);

}

#include <stdio.h>

#include <unistd.h>

int main() {

    printf("hello ,\n");

    printf("world\n");

    

    // 使用 _exit(0) 结束进程,不会执行标准I/O缓冲区的清理操作

    _exit(0);

}

#include <stdio.h>

#include <stdlib.h>

#include <sys/types.h>

#include <sys/wait.h>

#include <unistd.h>

int main() {

    pid_t pid;

    int status;

    // 创建子进程

    pid = fork();

    if (pid < 0) {

        perror("Fork failed");

        exit(1);

    }

    if (pid == 0) {

        // 子进程

        printf("Child process: pid = %d\n", getpid());

        // 子进程使用 exit(3) 结束

        exit(3);

    } else {

        // 父进程

        printf("Parent process: Child's pid = %d\n", pid);

        // 等待子进程退出并获取其退出状态

        pid_t child_pid = wait(&status);

        if (child_pid == -1) {

            perror("Wait failed");

            exit(1);

        }

        // 使用宏来检查子进程的退出状态

        if (WIFEXITED(status)) {

            int exit_status = WEXITSTATUS(status);

            printf("Child process %d exited with status %d\n", child_pid, exit_status);

        } else {

            printf("Child process %d did not exit normally\n", child_pid);

        }

    }

    return 0;

}

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

int main() {

    // 输出主进程运行标志

    printf("Main process is running\n");

    // 创建子进程

    pid_t pid = fork();

    if (pid < 0) {

        perror("Fork failed");

        exit(1);

    }

    if (pid == 0) {

        // 子进程

        printf("Child process is running\n");

        // 列出当前文件夹下的所有目录和文件

        char *args[] = {"ls", "-l", NULL};

        execvp("ls", args);

        // 如果exec函数调用失败,输出错误信息

        perror("Exec failed");

        exit(1);

    } else {

        // 等待子进程执行完毕

        wait(NULL);

        // 输出主进程运行标志

        printf("Main process is running again\n");

    }

    return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/87220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu上通过源码方式安装Redis

上一篇文章Ubuntu上安装、使用Redis的详细教程已经介绍了再Ubuntu操作系统上安装Redis的详细过程&#xff0c;但是因为安装的Redis只有最主要的配置文件和redis-server&#xff0c;为了更深入地学习Redis和进行更复杂的操作&#xff0c;需要安装一个完整的Redis服务。 这篇文章…

day-53 代码随想录算法训练营(19)动态规划 part 14

1143.最长公共子序列&#xff08;坐牢&#xff09; class Solution { public:int longestCommonSubsequence(string text1, string text2) {int ntext1.size(),mtext2.size();vector<vector<int>>dp(n1,vector<int>(m1,0));for(int i1;i<n;i){for(int j1…

SEO方案尝试--Nuxtjs项目基础配置

Nuxtjs 最新版 Nuxt3 项目配置 安装nuxtjs 最新版 Nuxt3 参考官网安装安装插件安装ElementPlus页面怎么跳转&#xff0c;路由怎么实现404页面该怎么配置配置 网页的title 安装nuxtjs 最新版 Nuxt3 参考官网安装 安装插件 安装ElementPlus 安装 Element Plus 和图标库 # 首先&…

Opencv源码解析(2)算法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;点击跳转 目录 一&#xff0c;直方图均衡 1&#xff0c;直方图统计 2&#xff0c;灰度变换 3&#xff0c;直方图均衡 二&#xff0c;可分离…

EasyWindow - Android 悬浮窗框架

官网 https://github.com/getActivity/EasyWindow 项目介绍 本框架意在解决一些极端需求&#xff0c;如果是普通的 Toast 封装推荐使用 Toaster 集成步骤 如果你的项目 Gradle 配置是在 7.0 以下&#xff0c;需要在 build.gradle 文件中加入 allprojects {repositories {/…

2023 年KPI (KPI:Key Performance Indicator) review

文章大纲 1. 总体情况2. 回顾与总结2.1 基础巩固2.2 工作内容充实计算机视觉coursera 2.3 AI 兴趣: NLP & AIGC2.4 面试、笔试题常读常新 (0%)2.5 读书笔记 参考文献与学习路径 2023 年的 kpi 本身就订的低&#xff0c;结果发现定的低也完不成&#xff0c;距离年底还有3个月…

【C++面向对象侯捷】8.栈,堆和内存管理

文章目录 栈&#xff0c;堆stack object的生命周期static local object的生命周期global object的生命周期heap objects 的生命期new&#xff1a;先分配memory&#xff0c;再调用构造函数delete: 先调用析构函数&#xff0c;再释放 memory动态分配所得的内存块&#xff0c;in V…

腾讯mini项目-【指标监控服务重构】2023-08-25

今日已办 traefik proxy jaeger Prometheus prometheus | Prometheus 配置完依然无法实现 web-url的前缀访问【待解决】 Set span storage type : elasticsearch services:elasticsearch:image: elasticsearch:7.17.12container_name: elasticsearchnetworks:- backend # …

超好用的接口自动化框架,lemon-easytest内测版发布,赶紧用起来~

easytest easytest 是一个接口自动化框架。 功能特点&#xff1a; 支持 http 接口测试 支持 json&#xff0c;html,xml 格式的响应断言 支持数据库断言 支持用例标记筛选 支持用例失败重运行 支持多线程 安装 pip install lemon_easytest 快速使用 不需要写任何代码…

postgresql|数据库|centos7下基于postgresql-12的主从复制的pgpool-4.4的部署和使用

前言&#xff1a; postgresql数据库只用自身的一些配置是无法做到最优的优化的&#xff0c;需要通过一些外置插件&#xff08;中间件&#xff09;来提高服务器的整体性能&#xff0c;通俗的说就是数据库仅仅依靠自身是无法达到性能最优的&#xff0c;很多时候需要更改数据库的…

Java内存模型介绍

文章目录 Java内存模型前言Java内存模型基本介绍指令重排相关概念主存和本地内存相关介绍JMM中的8种同步规则和8种同步操作happens-before 原则内存屏障总结 Java内存模型 前言 本文主要介绍一下JMM中的一些常见概念&#xff0c;通过本文让你能够快速的对JMM有一个大致的了解 …

【Java】基于物联网技术的智慧工地源码(项目端、监管端、APP端、智慧大屏)

智慧工地是将云计算、大数据、物联网、移动技术和智能设备等信息化技术手段&#xff0c;聚集在建筑工地施工管理现场&#xff0c;围绕人员、机械、物料、环境等关键要素&#xff0c;建立智能信息采集、高效协同管理、数据科学分析、过程智慧预测&#xff0c;最终实现建筑工地的…

2023/9/20 -- C++/QT

时钟: widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPainter> #include <QPaintEvent> #include <QDateTime> #include <QLabel> #include <QTimer> #include <QDebug>QT_BEGIN_NAMESPACE namespac…

CSS复习之选择器

目录 一、常用选择器 1.1元素选择器 1.2id选择器 1.3class选择器 二、复合选择器 2.1交集选择器 2.2并集选择器 三、关系选择器 3.1子元素选择器 3.2后代选择器 3.3兄弟选择器 四、属性选择器 五、伪类选择器 六、伪元素的选择器 七、超链接的伪类 一、常用选择器…

【ArcGIS】土地利用变化分析详解(矢量篇)

土地利用变化分析详解-矢量篇 土地利用类型分类1 统计不同土地利用类型的面积/占比1.1 操作步骤Step1&#xff1a;Step2&#xff1a;计算面积Step3&#xff1a;计算占比 2 统计不同区域各类土地利用类型的面积2.1 操作步骤 3 土地利用变化转移矩阵3.1 研究思路3.2 操作步骤 4 分…

【卖出备兑看涨期权策略(Covered_call)】

卖出备兑看涨期权策略&#xff08;Covered_call&#xff09; 卖出备兑看涨期权策略是一种最基本的收入策略&#xff0c;该策略主要操作就是在持有标的资产的同时卖出对应的看涨期权合约&#xff0c;以此来作为从持有的标的资产中获取租金的一种方法。如果标的资产的价格上涨到…

超强换元法,二重积分计算的核武器!(雅可比行列式超通俗讲解)

超强换元法&#xff0c;二重积分计算的核武器&#xff01;&#xff08;雅可比行列式超通俗讲解&#xff09;

UE5 虚幻引擎 如何使用构造脚本(Construction Script)? 构造脚本的奥秘!

目录 1 构造脚本&#xff08;Construction Script&#xff09;1.1 介绍1.2 案例1&#xff1a;利用样条组件程序化生成树木1.2 案例2&#xff1a;利用样条组件和样条网格体组件程序化生成道路 1 构造脚本&#xff08;Construction Script&#xff09; 1.1 介绍 问题&#xff1a…

web:[ACTF2020 新生赛]Include

前提知识 文件包含漏洞 php伪协议 题目 点开题目&#xff0c;页面只显示一个tips&#xff0c;点进去看看 点进去之后 没有别的提示&#xff0c;先看源代码&#xff0c;恩&#xff0c;什么都没有 再看一下点进tips显示的页面&#xff0c;发现url中 flag可能就藏在这个页面中&…

漫谈:C语言 C++ 左值、右值、类型转换

编程不是自然语言&#xff0c;编程自有其内在逻辑。 左值引起的BUG 编译器经常给出类似这样的BUG提示&#xff1a; “表达式必须是可修改的左值” “非常量引用的初始值必须是左值” 看一下示例&#xff1a; #include <iostream>void f(int& x) {} int main() {sho…