全部学习汇总:GreyZhang/g_unix: some basic learning about unix operating system. (github.com)

今天看一个半生不熟的小函数,chdir。说半生不熟,是因为这个接口一看就知道是什么功能。然而,这个接口如何用可真就没啥想法了。

最早接触这样的一个接口自然还是perl学习的时候,到了后面接触python也看到了类似的接口在os的模块之中。看起来,归根结底大家追溯到的还是UNIX的这一套。

1. 这个功能属于库函数的类别。

2. 从设计的准则上,这个是POSIX标准的接口,linux可能实现有所不同。跟前面看到的接口有相同的描述了。

3. 看起来,函数执行成功返回0,失败的时候返回-1是一个较为常见的处理方式。或许是某种标准或者规范。

4. 这里提出来的根目录的疑问,其实到了后面也就有一个大概的理解印证了。

1. 函数的接口功能就是切换工作目录,其实跟命令中的cd应该是基本类似的。然而,perl中的经典教程小骆驼中印象中提过,很多perl中的接口也不见得跟unix的接口有啥对等关系。而cd的类似功能,perl不会去实现。

2. 在标准方面,这个是满足POSIX.1-2007,之前看到的基本都是2008,这还是第一次看到2007的标准。

3. 结合示范代码以及描述,其实这个接口可以切换的目录还是很自由的。自然,权限以及特殊的冲突状态还是得考虑的。

由此,前面分析的代码也就有一个很好去理解的基础了。这个函数其实是一个死循环,不断读取来自于终端的信息。如果判断出来是cd命令,那么就切换工作目录。如果切换失败给出错误提示,输出到stderr中。这样的处理过程是在不断进行的。

继续往下,又是新的接口。倒是之前看过的fork,不过这次看到的应该是一个全新的实现,这样后续单独做这个分析。

从整个程序的设计结构来看,其实是十分类似于嵌入式里面的一个简单的轮询处理的过程,整个处理过程就是在不断扫描处理的过程。可能这个只是用来阐明这样的一个简单机制,不然操作系统执行的时候必然会出现很多阻塞的情况。

1638_chdir函数的功能相关推荐

  1. datediff什么作用php,php中easter_date函数的功能起什么作用呢?

    摘要: 下文讲述php中easter_date函数的功能讲解,如下所示: easter_date函数功能说明: 返回指定年份对应的复活节午夜的Unix时间戳. easter_date语法: easte ...

  2. numpy中ravel函数、flatten函数的功能及差异

    numpy中ravel函数.flatten函数的功能及差异 >>> import numpy as np >>> a = np.arange(20).reshape ...

  3. 请编写fun()函数,函数的功能是删去一维数组中相同的数据在一起出现的数,相同的数只保留一个

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p143 7.1.2 上级实训内容 [实训内容13]请编写fun()函数,函数的功能是删去一维数组中相同 ...

  4. 自动化测试(三)如何用python写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复。...

    写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复.邮箱前面的长度是6-12之间,产生的邮箱必须包含大写字母.小写字母.数字和特殊字符 和上一期一样 代码中间有段比较混沌 有 ...

  5. compact php,php中compact函数的功能起什么作用呢?

    摘要: 下文讲述php中compact函数的功能讲解,如下所示: compact函数功能说明: 根据输入的变量名,使用变量名和变量值创建数组 compact语法: compact(var1,var2, ...

  6. C语言中fun的功能是将字符串,下列给定的程序中,fun()函数的功能是:将p所指字符串中......

    下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的"单词"是指有空格隔开的字符串).例如,若输入: I am a student to ...

  7. VBS常用函数及功能

    函数名 语法 功能 Abs Abs(number) 返回一个数的绝对值 Sqr Sqr(number) 返回一个数的平方根 Sin Sin(number) 返回角度的正玄值 Cos Cos(numbe ...

  8. c++语言函数strcpy,C++中函数的安全版本的意义及strcpy函数的功能和差别(图)

    C++中函数的安全版本的意义及strcpy函数的功能和差别(图) 我们在进行C/C++编程时,会发现中有些函数在VS中使用时,提示使用_s的函数版本,其实这种_s的函数版本是安全版本,它们完成的任务与 ...

  9. C语言试题五十一之已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。

    1. 题目 请编写一个函数void function(Student a[], int n, Student *s),其功能时:已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中 ...

最新文章

  1. windows下的eclipse运行hdfs程序时报错 (null) entry in command string: null chmod 0644【笔记自用】
  2. 【python】解析Excel中使用xlrd库、xlwt库操作,使用xluils库修改Excel文件详解(三)...
  3. Pycharm超使用快捷键
  4. 服务的协作:服务间的消息传递——《微服务设计》读书笔记
  5. 二分(三分)+快速幂
  6. python项目部署访问特别卡_【python新人求助】flask+pymssql 通过wsgi发布到Apache,访问接口服务器卡死?...
  7. 计算基因组学需要计算机知识吗,生物信息学——计算基因组学的一些参考书
  8. Go程序:利用命令行参数做四则运算
  9. 只有20行Javascript代码!手把手教你写一个页面模板引擎
  10. 计算机网络学习笔记(23. HTTP连接类型)
  11. php mysql数据库同步_教你怎样在两台MySQL数据库间实现同步
  12. mysql date 索引_SQL 中 IS NULL 可以走索引
  13. 必装 6 款超神的 GitHub 插件
  14. AutoIT如何制作自动化安装脚本-SketchUp 2017
  15. Activiti7事件监听
  16. CF1313C Skyscrapers
  17. ural 1818 Fair Fishermen
  18. UML --Package
  19. 2023年,莫荒废了时光。
  20. 计算机教师个人业绩成果自述,申报中学信息技术高级教师职称晋升个人业绩成果自述.docx...

热门文章

  1. 为什么要做数仓分层,不做行吗?
  2. 89c51控制小车运行c语言,基于STC89C52单片机和STM32的智能小车控制系统
  3. Oracle不完全恢复
  4. 【深度域自适应】二、利用DANN实现MNIST和MNIST-M数据集迁移训练
  5. 计算机科学——计算机导论
  6. Win7怎么共享无线 Win7无线网络共享全攻略
  7. HashMap 扩容阈值为什么是0.75
  8. 基础地图-在线地图-天地图(无标注)
  9. 【药材识别】基于色差色温特征结合SVM实现药材炮制程度判断系统附GUI界面
  10. 台式计算机的电功率约为,台式电脑用电功率,电脑用电功率多少