首页
学习
活动
专区
圈层
工具
发布

Linux中system函数返回值详解

描述 system()库函数使用fork(2)创建一个子进程,该子进程使用execl(3)执行指定的shell命令, execl("/bin/sh", “sh”, “-c”, command,...(char *) 0); 头文件 system - execute a shell command #include int system(const char *command...); 返回值 如果子进程无法创建,或者其状态不能被检索,则返回值为-1; 如果在子进程中不能执行一个shell,或shell未正常的结束,返回值被写入到status的低8~15比特位中;一般为127值...如果所有系统调用都成功, 将shell返回值填到status的低8~15比特位中 系统宏 系统中提供了两个宏WIFEXITED(status)、WEXITSTATUS(status)判断shell的返回值...返回值判断 命令是否正确执行 Linux system函数返回值 父进程等待子进程终止 wait, WIFEXITED, WEXITSTATUS

13.2K30

linux_file_system

代码在这里: linux-0.11 系统调用 以前写过一篇系统调用的: http://www.oneyearago.me/2018/05/08/apue-again-system-call-and-std...Linux 一切皆文件 首先通常在windows中是文件的东西,它们在linux中也是文件 其次一些在windows中不是文件的东西, 比如进程, 磁盘, 也被抽象成了文件....-0.11-master/include/unistd.h #define __NR_setup 0 /* used only by init, to get system going */ #define...当 // 程序使用fork()函数创建了一个子进程时,通常会在该子进程中调用execve()函数 // 加载执行另一个新程序。此时子进程中开始执行新程序。...每个文件的信息是如何组织的 从进程中的 file 结构出发,我们看下文件结构是如何组织的 linux-0.11-master/include/linux/fs.h : struct file { unsigned

2.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JavaWeb - Linux Operating System

    Linux 系统概述 计算机的体系结构 计算机由计算机硬件和计算机软件两个部分组成,其中计算机软件可分为系统软件和应用软件,系统软件就是操作系统,是其他软件的基础。...Linux 系统的概述 Linux 系统是一套免费、自由、开发源代码的类 Unix 操作系统,是一个基于 POSIX (Portable Operating System Interface) 标准和多用户...Linux 能运行主要的 Unix 工具软件、应用程序和网络协议,支持 32 位和 64 位硬件。 主要发行版本 Redhat:目前最大的 Linux 发行商,功能全面并且稳定,被 IBM 收购。...Ubuntu:目前最好的 Linux 桌面版,拥有很人性化的亮丽的交互界面,强大的软件源支持。...CentOS:是 RHEL (Red Hat Enterprise Linux) 的克隆版本,可以认为是免费版本的 Redhat 系统。

    1.4K30

    【Linux】system V 共享内存

    system V system V 是一套标准,独立于文件系统之外的,专门为了通信设计出来的模块 让两个毫不相关的进程看到同一份资源 1....共享内存原理 第一阶段原理 进程A和进程B都通过自己的页表映射到物理内存中的特定区域,进而找到该进程匹配的代码和数据 为了让进程A和进程B通信,前提是两者要看到同一份资源 假设在物理内存上开辟一块空间...进程A和进程B在自己的地址空间中都有自己的共享区 想办法把物理内存中新开辟空间 通过页表 映射到 进程A和进程B的共享区中 把地址空间的起始地址返回给用户 进程A和进程B就可以通过起始的虚拟地址,对应页表访问到内存...就完成了让进程A和进程B看到同一份资源,这份资源就被称为共享内存 第二阶段原理 系统中可以用ssh进行通信 ,是不是只能有一对进程使用共享内存呢?...先描述,在组织 并不是在内存中开辟空间即可,系统为了管理共享内存,构建对应的描述共享内存的结构体对象 共享内存=共享内存的内核数据结构(伪代码:struct shm)+真正开辟的内存空间 2.

    2.6K20

    【Linux】system V 消息队列 | system V 信号量(简单赘述)

    @TOC 这两部分主要是了解即可,为后面学习做铺垫 1 . system V 消息队列(了解) ---- 为了让两个进程间通信 创建一个队列queue 进程A可以通过消息队列的系统调用接口,把自己的数据块链入队列中...进程B也可以把自己的数据块链入队列中 这个队列就是一种共享资源 进程A想要读取数据时,只需要在队列中读取不是自己的数据 接口 创建消息队列 , 输入 man msgget 指令 key值含义与...msgflg选项 不懂具体可以看 :system v 共享内存 返回值为消息队列的标识符 ---- 操作系统要把多种消息队列管理起来,先描述在组织,每一个消息队列都有自己的结构体对象,对应的结构体对象包含当前消息队列的属性...查看消息队列 输入 ipcs -q 指令 删除消息队列 ipcs -q msqid值 即可删除 2.system V 信号量 (了解) 1.进程互斥等概念的理解 把大家都能看到的资源称为公共资源

    63920

    Java中System类详解

    下面开始剖析System类。...1、System类简介 System类代表当前Java程序的运行平台,位于java.lang包下,该类被private修饰,所以不能创建System类的对象,System类提供了一些类变量和方法,允许直接通过...上面程序通过调用System类的System.getenv()、System.getProperties()、System.getProperty()等方法来访问程序所在的平台的环境变量和系统属性,程序运行的结果会输出操作系统所有的环境变量...3、获取系统当前时间 System类还有两个获取系统当前时间的方法:System.currentTimeMillis();System.nanoTime();它们都返回一个long型的整数,前者以毫秒为单位...当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。 7、exit() exit(int)方法终止当前正在运行的 Java 虚拟机,参数解释为状态码。

    1.2K30

    【在Linux世界中追寻伟大的One Piece】System V共享内存

    1 -> System V共享内存 共享内存区是最快的IPC形式。...消息队列的编程示例 在编程实践中,可以通过创建发送进程和接收进程来演示消息队列的使用。发送进程将数据封装成消息并发送到队列,接收进程则从队列中取出消息进行处理。...在多进程或多线程的应用程序中,消息队列提供了一种灵活且高效的通信手段。 3 -> System V信号量 System V信号量是一种进程间同步机制,它允许多个进程通过对共享资源的访问计数来进行协调。...System V信号量的编程示例 在编程中,可以通过定义信号量集、初始化信号量值、执行P和V操作以及最终销毁信号量集来实现进程间同步。...System V信号量的实际应用 System V信号量广泛应用于操作系统中,用于实现进程间的同步和互斥。它们可以用于控制对共享资源的访问,管理进程的执行顺序,以及实现更复杂的同步算法。

    64410

    Linux:进程间通信之system V

    (因为其他进程都要配钥匙,所以钥匙的模具肯定不能放在某个进程中,而是放到专属于这个内存块的内核数据结构中) 4、 第一次创建共享内存的时候就需要一个key了,那么key从哪来??...特点:允许不同的进程,向内核中发送带类型(因为消息队列是将信息以数据块的形式链接到消息队列中,可以双向通信,但其中的内容有别人的数据,也会有自己的数据,所以我们需要通过不同的类型来判断队列中的数据块是别人传的还是自己传的...其实共享内存、消息队列、信号量都隶属于System V接口,所以他们的接口在设计的时候非常相似,并且也都遵循使用key值。...(2)ipc_perm就相当于是 基类 而包含他们的结构体对象就是 子类,而管理ipc_prem的数组就相当于是 虚函数表 所以其实这个Cpp中的继承和多态是一样的。...4.6 mmap函数 mmap也是一种共享内存技术 (System V的共享内存技术接口是最难的!) 一文读懂 mmap 原理 - 知乎 (zhihu.com)

    56110

    Linux进程间通信之System V

    ,其实是对底层代码的一种复用,linux工程师借助类似文件缓冲区的内存空间实现了管道,其实也算偷了一个小懒,随着linux的发展,linux正式推出了System V来专门进行进程间通信,它和管道的本质都是一样的...system V通信的3种通信方式: 1.system V共享内存 () 2.system V消息队列 () 3.system V信号量 () 上述中的共享内存和消息队列主要用于传输数据,而信号量则是用于保证进程间的同步与互斥...system V共享内存: 共享内存的基本原理: 之前说的到了通信的原理都是让不同的进程看到同一份资源,共享内存让进程看到同一份资源的方法就是,在物理内存中申请一块空间,名为共享内存,然后让这块空间与需要通信的进程的页表建立映射...可以看到上面共享内存数据结构中,第一个成员是shm_perm,shm_perm是一个ipc_perm类型的结构体变量,ipc_perm中存放了每个共享内存的key,ipc_perm的结构如下: struct...系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源。 在进程中涉及到临界资源的程序段叫临界区。

    59310

    Linux音频驱动-ASOC(ALSA System on Chip)

    概述 此处还需引入之前说过的话: 新事物的出现必然是为了解决旧事物中的不足。这句话在现实生活中和程序世界中道理一样。ASOC的出现就是为了解决ALSA无法解决的问题。ALSA到底存在什么问题?...针对以上问题,提出了ASOC(ALSA System on Chip)来力争解决上述问题。解决方法如下: 1. Codec代码独立,不再耦合与CPU,这样可以增加Codec代码重复利用。 2....如果需要的话,此Codec类可以在BT,FM,MODEM模块中不做修改的使用。因此Codec就是一个可重复使用的模块,同一个Codec在不同的SOC中可以使用。...Platform类: 可以理解为某款SOC平台,平台驱动中包括音频DMA引擎驱动,数字接口驱动(I2S, AC97, PCM)以及该平台相关的任何音频DSP驱动。...ASOC数据结构 在分析整个ASOC的过程中,出现了众多的数据结构,在此先理清重要的数据结构的关系。如下图: ?

    4.2K61

    【Linux】文件服务NFS(Network File System)

    Network File System(NFS)是一种用于在网络上共享文件系统的分布式文件系统协议,最初由Sun Microsystems开发。...版本: 关于NFS(Network File System),有几个重要的版本,每个版本都引入了新的功能和改进: NFSv2(Network File System Version 2): NFSv2...NFSv3(Network File System Version 3): NFSv3是NFS协议的下一个主要版本,于1995年发布。...最新的NFS版本通常提供更好的性能和更多的功能,因此在新的部署中更常见。然而,对于与较旧系统和设备进行交互的环境,可能需要选择较旧版本的NFS以确保兼容性。...NFS广泛用于大型网络环境、集群计算、数据中心和存储解决方案中,为多台计算机提供了高效的文件共享和访问机制。在使用NFS时,必须仔细考虑安全性和性能,并根据具体需求配置相应的选项。

    2K10

    (转)Java中的System类

    后续在学习完IO相关的知识以后,可以使用System类中的成员方法改变标准输入流等对应的设备,例如可以将标准输出流输出的信息输出到文件内部,从而形成日志文件等。...int srcPos, Object dest, int destPos, int length) 该方法的作用是数组拷贝,也就是将一个数组中的内容复制到另外一个数组中的指定位置,由于该方法是native...使用示例: int[] a = {1,2,3,4}; int[] b = new int[5]; System.arraycopy(a,1,b,3,2); 该代码的作用是将数组a中,从下标为1开始...也就是将a[1]复制给b[3],将a[2]复制给b[4],这样经过复制以后数组a中的值不发生变化,而数组b中的值将变成{0,0,0,2,3}。...至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。

    73520

    【深入学习Linux】System V共享内存

    前言 早在设计Unix时,系统开发者就发现了一个悖论:在某些情况下,系统中的进程既要满足互相隔离又要彼此协同合作。...由此衍生出了System V IPC等通信方式,在保持进程独立性的前提下,通过内核中介、权限控制和同步机制实现安全通信。...System V IPC通信机制主要包括:消息队列/ 信号量/ 共享内存三种通信方式,本文主要讨论共享内存的概念原理以及使用方式。 一、共享内存是什么?...3)系统中可能同时存在很多共享内存块。...总结 本文详细介绍了System V通信方式中的“共享内存”通信方式。从原理的介绍,到接口的使用,再到最后的优缺点分析,较为系统的剖析共享内存的原理和使用。

    45000
    领券