初学APUE-book-1重点摘入

本文介绍了UNIX系统的体系结构,包括操作系统的基本概念、文件系统的特点、路径名的使用方式、工作目录的概念及出错处理机制。此外还讲解了系统调用与库函数的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.UNIX体系结构

    操作系统定义为一种软件,它控制计算机硬件资源,提供进程运行环境。通常叫这种软件为内核。内核的接口被称为系统调用,公用库函数建立在系统调用接口。shell是一个特殊的应用程序,为运行其他引用程序提供了一个接口。

二.文件和目录

1.文件系统
    UNIX文件系统是目录和文件的一种层次结构,所有东西的起点称为根(root)的目录,这个目录的名称是一个字符"/"。
    目录是一个包含目录项的文件。在逻辑上,可以认为每个目录项都包含一个文件名,同时还包含说明该文件属性的信息,文件属性是指文件类型、文件大小、文件所有者、文件权限以及文件最后的修改时间等。
2.文件名
    目录中的各个名字称为文件名。只有斜线和空白符这两个字符不能出现在文件名中。斜线是用来分割构成路径名的各文件名,空白符是用来终止一个路径名。创建文件最好注意一下命名的方式:字母、数字、句点、短横线、和下划线。
注:创建新目录时会自动创建两个文件名:.和..指向当前目录,..指向父目录。在最高层次的根目录中..和.相同。
3.路径名
    有斜线分隔的一个或多个文件名组成的序列构成路径名,以斜线开头的路径名称成为绝对路径,否则称为相对路径名。相对路径名相当于当前目录的文件。文件系统根的名字是一个特殊的绝对路径名,它不包括文件名。
4.工作目录
    每个进程都有一个工作目录,有时称其为当前工作目录。所有相对路径名都是从工作目录开始解释的。进程可以用chdir函数更改其工作目录。
5.起始目录
    登陆时,工作目录设置为起始目录,该起始目录从口令文件开始中相应用户的登陆项中取得。

三.出错处理

    当UNIX系统函数出错时,通常会返回一个负值,而且整形变量errno通常被设置为具有特定信息的值。例如:open函数如果成功执行则返回一个非负文件描述符,如出错则返回-1。在出错时,有大约15种不同的errno值。而有些函数对于出错则使用另一种约定而不是返回值。例如:大多数返回指向对象指针的函数,在出错时返回一个null指针。
    文件<errno.h>中定义了errno以及可以赋与它的各种常量。这些常量都以字符E开头。在LINUX中可以使用man手册来查看errno的使用方法

四.时间值

    历史上,UNIX系统使用过两种不同的时间值。
    (1)日历时间。该值是1970.1.1 00:00:00这个特定时间以来所经过的秒数累计值。这些时间值可用于记录文件最近一次的修改时间等。系统基本数据类型time_t用于保存这种时间值。
    (2)进程时间。也被称为CPU时间,用以度量进程使用的中央处理器资源。进程时间以时钟滴答计算。系统基本数据类型clock_t保存这种时间值。

五.系统调用和库函数

    所有操作系统都提供多种服务的入口点,由此程序向内核请求服务。各种版本的UNIX实现都提供了良好定义、数量有限、直接进入内核的入口点,这些入口点被称为系统调用函数。
    系统调用接口总是在《UNIX程序员手册》的第2部分中说明,是用第2部分中说明,是用C语言定义的,与具体系统如何调用一个系统调用的实现技术无关。
    《UNIX程序员手册》的第三部分定义了程序员可以使用的通用库函数。虽然这些函数可能会调用一个或多个内核的系统调用,但是他们并不是内核的入口点。
    一个可说明系统调用和库函数之间的差别例子是,UNIX系统提供的判断当前时间和日期的接口。
注:应用程序既可以调用系统调用也可以调用库函数。
    系统调用和库函数之间的另外一个差别是:系统调用通常提供一种最小接口,而库函数通常提供复杂的功能。

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值