![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UNIX笔记专区
文章平均质量分 77
智杰狼
这个作者很懒,什么都没留下…
展开
-
I/O 多路转接
I/O 多路转接,为了使用这种技术,先构造一张我们感兴趣的描述符的列表,然后调用一个函数,直到这些描述符中的一个已准备好进行 I/O 时,该函数才返回。poll、pselect 和 select 这3个函数使得我们能够指向 I/O 多路转接。原创 2023-12-05 23:52:56 · 811 阅读 · 0 评论 -
信号相关的函数
signo 参数是信号名。func 的值是常量 SIG_IGN、常量 SIG_DEL 或当接到此信号后要调用的函数的地址。signal 函数原型说明此函数要求两个参数,返回一个函数指针,而该指针所指向的函数无返回值(void)。第一个参数 signo 时一个整型值,第二个参数是函数指针,它所指向的函数需要一个整型参数,无返回值。signal 的返回值是一个函数地址,该函数有一个整型参数(即最后的(int))。当调用 signal 设置信号处理程序时,第二个参数是指向该函数(也就是信号处理程序)的指针。原创 2023-12-04 02:57:57 · 878 阅读 · 0 评论 -
进程组与会话的概念
进程组是一个或多个进程的集合。通常,它们是在同一作业中结合起来的,同一进程组中的各进程接受来自终端的各种信号。每个进程组有一个唯一的进程组 ID。进程组 ID 类似于进程 ID,它是一个正整数,并可存放在 pid_t 数据类型中。对于 函数 getpgid 若pid 是 0,返回调用进程的进程组 ID,每个进程组有一个组长进程。组成进程的进程组 ID 等于其进程 ID。进程组组长可以创建一个进程组、创建该进程组中的进程,然后终止。原创 2023-12-03 22:32:52 · 339 阅读 · 0 评论 -
UNIX 系统中的进程调度相关函数
调度策略和调度优先级是由内核确定的。进程可用通过调整 nice 值选择以更低优先级运行(通过调整 nice 值降低他对 CPU 的占有,因此该进程是“友好的”)。只有特权进程允许提高调度权限。Single UNIX Specification 中 nice 值得范围在 0 ~ (2*NZERO) - 1 之间,有些实现支持 0 ~ 2*NZERO。nice 值越小,优先级越高,这意思是:你越友好,你的调度优先级就越低。NZERO 是系统默认得 nice 值。原创 2023-12-03 21:37:06 · 348 阅读 · 0 评论 -
深入理解进程控制相关的函数
每个进程都有一个非负整型表示的唯一进程 ID。有关进程 ID 的一些获取函数。原创 2023-12-02 21:11:31 · 886 阅读 · 0 评论 -
关于标准 I/O 流文件的读和写函数
函数 getchar 等同于 getc(stdin)前两个函数的区别是,注:这3个函数在返回下一个字符时,将其 unsigned char 类型转换为 int 类型。因为常量 EOF 经常被设置为 -1,所以不管是出错还是到达文件尾端,这3个函数都返回同样的值。为了区分出错还是到达尾端,需要使用和每个流在 FILE 对象中维护了两个标志:出错标志和文件结束标志。可以使用 clearerr 清楚这两个标志。当从六种读取数据以后,可以调用 ungetc 将字符再压回流中。原创 2023-12-01 23:06:25 · 420 阅读 · 1 评论 -
标准 I/O 函数
对于标准 I/O 库,它们的操作是围绕流(stream)进行的。当用标准 I/O 库打开或创建一个文件时,我们已使一个流与一个文件相关联。原创 2023-12-01 18:44:31 · 861 阅读 · 1 评论 -
创建和删除目录函数,以及更改当前工作目录函数
用 mkdir 和 mkdirat 函数创建目录,用 rmdir 函数删除目录这两个函数创建一个新的空目录。其中 '.' 和 '..' 目录项是自动创建的。所指定的文件访问权限 mode 由进程的文件模式创建屏蔽字修改。这两个函数经常出现的错误是:指定与文件相同的 mode(只指定读、写权限)。但是,对于目录通常至少要设置一个执行权限位,以允许访问该目录中的文件名。mkdirat 函数与 mkdir 函数类似。原创 2023-11-30 22:58:17 · 382 阅读 · 0 评论 -
UNIX 文件权限设置的相关函数
umask 函数为进程设置文件模式创建屏蔽字,并返回之前的值。这个函数没有出错返回,它不会出错.其中,参数 cmask 是由 文件模式(mode)的九个权限按位或构成的。上述代码创建了两个文件,创建第一个文件时,umask 值为0,创建第二个时,umask 值禁止所有组和其他用户的访问权限。应用中常常使用设置 umask 值以控制他们所创建文件的默认权限。原创 2023-11-30 10:01:14 · 883 阅读 · 0 评论 -
UNIX常用的文件操作函数
传统的 UNIX 系统实现在内核中设有缓冲区高速缓存或页高速缓存,大多数磁盘 I/O 都通过缓冲区进行。当我们想文件写入数据时,内核通常先将数据复制到缓冲区中,然后排入队列,晚些时候再写入磁盘。这种方式被称为延迟写。sync 只是将所有修改过的块缓冲区排入写队列,然会就返回,它并不等待实际写操作结束。通常,称为 updata 的系统守护进程周期性地调用(一般每隔 30 秒)sync函数。这就保证了定期冲洗(flush)内核的块缓冲区。命令 sync(1) 页调用 sync 函数。原创 2023-11-29 17:55:58 · 377 阅读 · 1 评论 -
函数 dup 、dup2 和 fcnt1
这两个函数都可用来复制一个现有的文件描述符两函数的返回值:若成功:返回新的文件描述符;若出错,返回-1;dup 返回的新文件描述符一定时当前可用文件描述符中的最小数值。dup2 可以用 fd2 参数指定新描述符的值。如果 fd2 已经打开,则先将其关闭。如若 fd 等于 fd2,则 dup2 返回 fd2,而不关闭它。否则,fd2 的 FD_LOEXEC 文件描述符标志就被清除,这样 fd2 在进程调用 exec 时是打开状态。这两个函数返回的新文件描述符与参数 fd 共享同一个文件表项。原创 2023-11-29 17:20:14 · 437 阅读 · 1 评论 -
关于UNIX的文件共享
UNIX系统支持在不同进程间共享打开文件。内核使用3中数据结构表示文件,它们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响。1. 每个进程在进程表中都有一个记录项,记录项中包含一张打开文件描述符表,每个描述符占用一项。与每个文件描述符相关联的是:a. 文件描述标志b. 指向一个文件表项的指针2. 内核为所有打开文件维持一张文件表。每个文件表象包含:a. 文件状态标志(读、写、添写、同步和非阻塞等)b. 当前文件偏移量c. 指向该文件 v 节点表项得指针。原创 2023-11-22 17:19:41 · 77 阅读 · 1 评论 -
UNIX中的文件 I/O
文件描述符对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。当打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。原创 2023-11-22 16:39:27 · 33 阅读 · 1 评论 -
UNIX基本知识
我们可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境;我们通常将这种软件称为。内核的接口被称为系统调用;公用函数库构建在系统调用接口之上,应用程序即可使用公用函数库,也可使用系统调用。shell是一个特殊的应用程序,为运行其他应用程序提供了一个接口。原创 2023-11-19 18:53:18 · 31 阅读 · 1 评论