首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
linux编程实践:实现pwd命令
】的更多相关文章
linux编程实践:实现pwd命令
内核为每个目录都设置了一个指向自己的i节点入口,即".",还有一个指向其父目录i节点的入口,即"..",我们首先获取当前目录的i节点编号,但是并不能知道当前目录的名称,我们切换到其的父目录,在里面寻找当前i节点编号对应的文件名即可.这样我们就很容易联想到使用递归来实现,但是终止条件是什么呢?在Unix文件系统的根目录中,"."和".."指向同一个i节点,我们可以以此判断是否发到达了根目录. pwd以绝对路径打印当前的工作目录.…
学习《Unix/Linux编程实践教程》(1):Unix 系统编程概述
0.目录 1.概念 2.系统资源 3.学习方法 4.从用户的角度来理解 Unix 4.1 登录--运行程序--注销 4.2 目录操作 4.3 文件操作 5.从系统的角度来理解 Unix 5.1 网络桥牌 5.2 bc:Unix 的计算器 5.3 从 bc/dc 到 Web 6.小结 1.概念 概念: Unix 系统包含用户程序和系统内核 内核由多个子系统构成 内核管理所有的程序和资源 进程之间的通信对 Unix 程序是很重要的 什么是系统编程 相关命令: bc 一些术语: 内存空间用来存放程序和…
Unix/Linux编程实践教程(0:文件、终端、信号)
本来只打算读这本书socket等相关内容,但书写得实在好,还是决定把其余的内容都读一下. 阅读联机帮助的一个示例: open系统调用: read系统调用: Unix的time: 上面的printf可以看到,一个临时的char* 指针也可以+4,希望查看ctime函数里面是否有malloc,如果有的话由谁来释放内存???没有的话为什么可以指针操作. 为解决上述疑惑,通过查看http://www.cplusplus.com/reference/ctime/ctime/以及及http://www.cp…
Unix/Linux编程实践教程(二:socket、多线程、进程间通信)
同一接口不同的数据源: 协同进程: fdopen以文件描述符为参数: fopen和popen: 为了实现popen,必须在子进程中调用sh,因为只有shell本身即/bin/sh可以运行任意shell命令: popen的实现: 访问数据: 系统调用socket创建一个socket: htons(16位).htonl(32位).ntohs.ntohl这些函数用于网络字节序与主机字节序转换.名字由来:host to network long. connect: 使用SIGCHLD来阻止僵尸问题:…
Unix/Linux编程实践教程(一:进程、管道)
execvp在程序中启动新程序: 用fork创建新进程: forkdemo2代码: 测试fork的时候参考<Linux权威指南>阅读笔记(3) 使用了patch: [root@localhost programming]# diff -c forkdemo2.c forkdemo2_new.c > forkdemo2.patch [root@localhost programming]# patch < forkdemo2.patch patching file forkdemo…
Linux编程 10 (shell外部命令与内建命令,alias ,type命令)
一. 内部命令 Linux命令有内部命令(内建命令)和外部命令之分,内部命令和外部命令功能基本相同,但也有些细微差别.内部命令不需要使用子进程来执行,它们已经和shell编译成一体,作为shell工具的组成部分存在.不需要借助外部程序文件来运行.它们是一些比较简单的linux系统命令,如exit,history,cd,echo等. 要分区是外部命令还是内部命令可以使用type 来查看,如下图查看cd是内部还是外部命令: 1.1命令别名 alias 命令也是一个内建命令,允许你为常用的命令和参…
Unix/Linux编程实践教程(三:代码、测试)
测试logfilec.c的时候,有个sendto(sock,msg,strlen(msg),0,&addr,addrlen),编译时提示: logfilec.c:30: warning: passing argument 5 of ‘sendto’ from incompatible pointer type 但是书上是这样写的,在stackoverflow搜了一下,原来是: 需要进行一个转换. 另外才注意到C语言中单引号可转义可不转. 需要用curses库的测试hello1.c,发现没有,需要…
学习《Unix/Linux编程实践教程》(2):实现 more
0.目录 1.more 能做什么? 2.more 是如何实现的? 3.实现 more 3.1 more01.c 3.2 more02.c 3.3 more03.c 1.more 能做什么? more 可以分页显示文件的内容.正常运行后 more 会显示文件第一屏的内容,在屏幕的底部,more 用反白字体显示文件的百分比,这时如果按空格键,文件的下一屏内容会显示出来,如果按回车键,显示的则是下一行,如果输入"q",结束显示,如果输入"h",显示出来的是 more 的联…
【目录】linux 编程
随笔分类 - linux 编程 Linux编程 24 shell编程(结构化 if [ condition ] 数值比较,字符串比较) 摘要: 一.概述 接着上篇讲的结构化命令,最后讲到了test命令的另一种写法 if [ condition ],它的语法格式如下: 第一个方括号之后和第二个方括号之前必须加上一个空格,否则就会报错.test命令可以判断三类条件:(1)数值比较(2)字符串比较(3)文件比较. 1.1 数值比较 比较 描述 例阅读全文 posted @ 2018-10-16 17:…
linux编程实现pwd命令
linux编程实现pwd命令 在linux中,一切皆文件.目录其实也是一种文件,只不过这种文件比较特殊,它里面存储的是一张对应表,即文件名和i节点的对应关系表,而i节点才是记录此文件详细信息的结构,如文件大小,属性,权限,存在硬盘的那个块等.我们在一个目录创建文件就是在这张表里添加对应关系而已,使用某个文件时也是根据i节点确定在硬盘的实际存储位置的.使用"ls -iaR"命令尝试看一下文件的i节点信息. 内核为每个目录都设置了一个指向自己的i节点入口,即".",还有…