Linux程序设计
文章平均质量分 61
cccsy97
这个作者很懒,什么都没留下…
展开
-
Unix系统编程安装 tlpi_hdr.h头文件
安装tlpi_hdr.h头文件第一步:下载本书所给的源码文件并安装依赖wget “http://man7.org/tlpi/code/download/tlpi-161214-dist.tar.gz”sudo apt install libcap-dev libacl1-dev libselinux1-dev或者sudo yum install libcap-devel libacl-devel libselinux-devel第二步:解压后,make编译tar -zxvf tlpi-原创 2022-02-10 15:21:09 · 569 阅读 · 0 评论 -
文件流和文件描述符(使用unlink创建临时文件)
文件流和文件描述符 每个文件流都和一个底层文件描述符相关联,虽然可以通过底层的输入输出操作和文件流操作混合使用,但这样会导致难以预料的缓冲后果。unlink、link和symlink系统调用 如果一个文件的连接数减少的0,并且没有进程打开,这个文件就会被删除。事实上,目录项总是立刻被删除的,但文件所占用的空间要等到最后一个进程关闭才会被回收,rm程序使用的就是这个调用。先用open创建一个文件然后对其调用unlink是用来创建临时文件的技巧,这些文件只有在被打开的时候才能被调用,程序退出就会被原创 2021-07-04 21:27:28 · 237 阅读 · 0 评论 -
格式化输入输出(一)printf、scanf系列
printf、fprintf、sprintf函数 printf系列函数能够对各种不同类型的参数进行格式编派和输出,每个参数在输出流中的表示形式由格式参数format控制,它是一个包含需要输出的普通字符和称为转换控制字符的字符串,转换控制符规定了其余的参数应该以何种方式被输出到何种地方。#include"stdio.h"int printf(const char *format);int sprintf(char *s,const char *format );int fprintf(FILE原创 2021-07-04 21:03:45 · 123 阅读 · 0 评论 -
标准I/O库(fopen、Fread、fwrite、fclose、fflunsh)
标准I/O库 标准I/O库(stdio)及其头文件stdio.h为系统调用提供了一个通用的接口,这个库是ANSI标准C的一部分,在很多方面使用标准I/O库和使用描述符一样,首先需要打开一个文件以建立一个访问路径,这个操作的返回值将作为其他I/O库函数的参数。在I/O库中,与描述符对应的是流,以FILE类型的指针实现。fopen函数#include”stdio.h”FILE * fopen (const char *filename,const char *mode); fopen打开由f原创 2021-07-04 17:44:01 · 518 阅读 · 0 评论 -
底层系统调用(三)(mmap、msync、nummap、error))
mmap函数 mmap(内存映射)函数的作用是建立一段可以被两个或更多个程序读写的内存,一个程序对它做的修改可以被其他程序看到。这一功能可以用在文件处理上,方法,mmap函数创建一个指向内存区域的指针,该内存可以通过一个打开的文件描述符访问与文件的内容相关联。#include"stdio.h"void *mmap(void *addr,size_t len,int prot ,int flags,int fildes,off_t off); 可以通过传递参数off改变共享内存段访问的文件原创 2021-07-04 17:41:57 · 1145 阅读 · 0 评论 -
底层系统调用(open、write、read、close)
底层系统调用open系统调用 open可以创建一个新的描述符,成功返回文件描述符,失败返回-1,通常open系统调用不需要头文件sys/stat.h和sys/types.h但在某些UNIX系统上,它们必不可少,如果两个程序同时打开一个文件,它们会分别得到两个不同的文件描述符。如果它们都对文件进行写操作,那么它们会各写各的,分别接着上次离开的位置继续往下写。数据不会交织,而是彼此覆盖。两个程序对文件读写位置(偏移值)不同。可以通过使用文件锁防止这种现象出现。 O_RDONLY 只原创 2021-07-03 19:26:52 · 850 阅读 · 0 评论