![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unix环境高级编程
文章平均质量分 91
个人对此本书做得简单笔记
以离
这个作者很懒,什么都没留下…
展开
-
unix环境高级编程(线程)笔记
在默认情况下,线程的终止状态会保存直到对该线程调用pthread_join。在线程被分离后,我们不能用pthread_join函数等待它的终止状态,因为对分离状态的线程调用pthread_join会产生未定义行为。线程可以安排它退出时需要调用的函数,这与进程在退出时可以用atexit函数安排退出是类似的。一个线程可以建立多个清理处理程序。每个进程都有ID作为标识,线程也还是一样,但是线程的ID只有在所属进程的上下文才有意义。单个线程可以通过3种方式退出,因此可以在不终止整个进程的情况下,停止它的控制流。原创 2023-11-01 09:27:42 · 46 阅读 · 1 评论 -
unix环境高级编程(进程环境)笔记
历史上的unix系统的main函数带3个参数,第三个就是环境变量的字符指针数组,ISO C规定main函数只有两个,后来就变成了2个参数的main函数,通常也是使用getenv和putenv函数来访问特定的环境变量,而不使用environ变量,如果查看整个环境变量,则必须使用此变量。realloc可以对以前分配的内存进行增减,如果在增加的时候,在原内存区域后面有足够的空间进行扩充,就载原来的内存区的位置上向高增长,无需移动原数据,如果不够,就会重新开辟内存空间,拷贝数据,释放原来的内存。原创 2023-10-21 19:45:59 · 78 阅读 · 1 评论 -
unix环境高级编程(系统数据文件和信息)笔记
系统时间,口令等数据文件接口的介绍原创 2023-10-21 18:14:13 · 77 阅读 · 1 评论 -
unix环境高级编程(标准I/O库)笔记
若编码出错,返回负值,会追加一个null,返回值不包括null。该文件被关闭前,冲洗缓冲中的输出数据,缓冲区中任何输入数据被丢弃,如果标准IO库已经为该流自动分配了缓冲区,则释放此缓冲区。前面的读写操作是以字符或行,遇到null或换行就会停止,对一个结构进行写入到文件时,还需要使用循环,所以提供一下二进制操作。printf(标准输出)、fprintf、dprintf返回值:若成功,返回输出字符数;进程正常终止(调用exit或从main函数返回)时,所有未写缓冲数据都被冲洗,所有打开的标准IO流都被关闭。原创 2023-10-16 09:22:20 · 70 阅读 · 1 评论 -
unix环境高级编程(文件和目录)笔记
如果pathname是相对路径且dirfd是AT_FDCWD,相对路径的起始目录是进程的工作目录,否则相对路径的起始目录是dirfd打开的目录文件。文件使用inode进行管理,此结构包含了文件的属性以及硬盘块等信息,此结构也同样占用磁盘空间,因此一个分区在初始化时,可以设置节点数量,节点数量多了,数据块的数量就会减少。用于创建文件前设置文件模式创建屏蔽字(建立文件时预设的权限掩码):该屏蔽字中被置位的指定权限,当创建文件时不会设置该权限(即该权限被屏蔽掉了)目录的读权限表示我们能获取此目录下的文件列表。原创 2023-10-13 21:26:34 · 52 阅读 · 0 评论 -
unix环境高级编程(文件I/O)笔记
因此无法打开一个不存在的文件,需要先调用此函数,创建文件,并且creat打开的文件是以只写的方式打开的。path是文件名字。内核在对文件进行写入时,不会立即写入到硬盘,而是从用户区,拷贝到内核的缓冲区,然后排入队列中,再晚点的时候写入到硬盘中,比如缓冲区写满了时。这两个函数返回的描述符一定是最小未被使用的值,可以通过关闭1号描述符,再打开另一个文件,这样1号文件描述符就被指定到新打开的文件中了。此函数是用来设置文件的偏移量的,内核在进程的某地方记录了文件下次写入到文件中的位置,这个位置就是偏移量。原创 2023-10-12 09:09:57 · 52 阅读 · 0 评论