摘要:
APUE习题8.7解答APUE的8.7习题是关于exec的一个问题,书中描述了一句“POSIX.1明确要求再执行exec时关闭打开的目录流”。我们需要自己来验证下这个性质是否在自己的系统上有效,题目给我们提供了思路。简单的分析下,我们首先需要打开一个目录,这个很简单,使用opendir()函数,我们... 阅读全文
摘要:
C语言和python语言不同,C语言有严格的输入控制,所以类型很清晰,python的类型,一般输入的都是字符串类型的。要用的时候就直接转换一下,很方便。没有太多限制,但是我们在实现C语言类型转换的时候,一个是程序执行的时候有一个隐式的转换,那个是在同一种类型下,比如int 和long的转换,int和double的转换,这种向上的转换,这样的系统自己帮我们做了。还有一种强制的转换,我们想把float的类型变成int类型的。那就加上一个 (int) 要转换的数 ,我们发现这些是在同时数值情况下的一种转换。C语言里面也有字符类型char,这个类型很灵活,因为在c语言里面没有字符串这个类型,而我们从. 阅读全文
摘要:
shell排序: 这个排序的命名是来自发明者的名字,和排序的方法没有字面上的联系。所以不要因为名字而感觉很难。在K&R的C程序设计语言中书中只用了几行代码很简洁的实现了这个排序算法。那就来看看这个排序是如何实现的。原理: 我们将所要排序的序列(大小为n)划分成组,组的数量一般是可以用这个序列的大小的一半来定义(也就是d = n/2),然后不断折半,而组的成员就是间隔为d的数分为一组。比如这边有个长度为8的数字序列要去排序,那我们就可以先将这个序列分成d=4组的,每个组有两个数,(这边的4就是8的一半)。这四组就是(R1,R5),(R2,R6),(R3,R7),(R4,R8).然后就是组 阅读全文
摘要:
写这篇文正主要是为了介绍下fcntl,并将我自己在学习过程中的一些理解写下来,不一定那么官方,也有错误,希望指正,共同进步~ fcntl: 一个修改一打开文件的性质的函数。基本的格式是 int fcntl(int filedes, int cmd, ...) 包含在头文件中。 参数三是看cmd这个参数的设置。函数返回一个文件描述符。fcntl有五种功能。下面介绍其中的三种功能 1、复制一个现有的描述符(cmd = F_DUPFD) 2、获得/设置文件描述符标记(cmd = F_GETFD或是cmd = F_SETFD) 3、获得/设置文件状态标志(cmd = F_GETFL或是... 阅读全文
摘要:
dup 和 dup2 dup和dup2,都是用来将一个文件描述符复制给另一个文件描述符上,这两个文件描述符都指向同一个文件状态标志上。 只是文件描述符的大小不一样,dup所执行下的复制,肯定是返回的系统中最小的可用文件描述符。而dup2.可以自定义文件描述符的。系统的0、1、2描 述符已经被占用。所以用dup所复制的描述符是不能是这三个的。我们可以将这三个复制给其他的文件描述符。函数描述 int dup(int filedes) int dup2(int filedes, int filedes2)dup dup的参数是filedes,这个指的是系统中已经打开的文件描述符.返回... 阅读全文