【Linux C编程】第十六章 网络编程基础 - socket 网络相关术语名词解析(linux系统)
724
2022-05-29
一、整体大纲
二、相关函数
1. getcwd
函数作用:获取当前目录
头文件
#include
函数原型
char *getcwd(char *buf, size_t size);
参数说明:
buf传出参数,路径
size缓冲区大小
返回值
成功:返回路径的指针
失败:返回NULL
2. chdir
函数作用:改变工作路径
头文件
#include
函数原型
int chdir(const char *path);
函数参数:
path对应的目标工作路径
返回值
成功:返回0
失败:返回-1,设置errno
注意:改变工作路径-注意属于进程独有。
示例:
chdir示例
1 #include
3. mkdir
函数作用:创建目录
头文件
#include
函数原型
int mkdir(const char *pathname, mode_t mode);
参数说明:
pathname创建的目录路径
mode目录权限 (mode & ~umask & 01777),注意权限,如果目录没有可执行权限,不可进入
返回值
成功:返回0
失败:返回-1,设置errno
4. rmdir
函数作用:只能删除空文件夹
5. opendir
函数作用:打开目录
头文件
#include
函数原型
DIR *opendir(const char *name);
参数说明:
pathname打开的目录
返回值
成功:返回指向该目录流的指针
失败:返回-1,设置errno
6. readdir
函数作用:读目录
头文件
#include
函数原型
struct dirent *readdir(DIR *dirp);
参数说明:
dirp传入参数,opendir返回的指针
返回值
成功:读到目录项的内容
失败:NULL代表读到末尾或者有错误
struct dirent { ino_t d_ino; /* inode number */ off_t d_off; /* not an offset; see NOTES */ unsigned short d_reclen; /* length of this record */ unsigned char d_type; /* type of file; not supported by all file system types */ char d_name[256]; /* filename */ };
7. closedir
函数作用:关闭目录
头文件
#include
函数原型
int closedir(DIR *dirp);
函数参数:
dirp传入参数,opendir返回的指针
返回值
成功:返回0
失败:返回-1,设置errno
需求:统计一下指定目录下的文件个数?
统计指定目录下文件个数
1 #include
8. dup2
函数作用:文件描述符重定向
头文件
#include
函数原型
int dup2(int oldfd, int newfd);
参数说明:
关闭newfd对应的文件描述符,将newfd重新指向为old对应的文件
返回值
成功:返回0
失败:返回-1,设置errno
9. dup
函数作用:复制文件描述符
头文件
#include
函数原型
int dup(int oldfd);
参数说明:
新返回一个文件描述符指向oldfd对应的文件
返回值
成功:返回0
失败:返回-1,设置errno
需求:在代码中执行2次printf("hello world\n");一次输出到hello文件,后一次输出到屏幕上?
需求实现
1 #include
10. errno
函数作用:输出函数,根据errnum得到相应的错误信息
头文件
#include
函数原型:
char *strerror(int errnum);
11. fcntl
改变已经打开的文件的属性
打开文件的时候: 只读
修改文件的: 添加追加 O_APPEND
三、补充
1. 索引节点inode
保存的其实是实际的数据的一些信息,这些信息称为“元数据”(也就是对文件属性的描述)。例如:文件大小,设备标识符,用户标识符,用户组标识符,文件模式,扩展属性,文件读取或修改的时间戳,链接数量,指向存储该内容的磁盘区块的指针,文件分类等等。( 注意数据分成:元数据+数据本身 )
注意inode怎样生成的:每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定(现代OS可以动态变化),一般每2KB就设置一个inode。一般文件系统中很少有文件小于2KB的,所以预定按照2KB分,一般inode是用不完的。所以inode在文件系统安装的时候会有一个默认数量,后期会根据实际的需要发生变化。
注意inode号:inode号是唯一的,表示不同的文件。其实在Linux内部的时候,访问文件都是通过inode号来进行的,所谓文件名仅仅是给用户容易使用的。当我们打开一个文件的时候,首先,系统找到这个文件名对应的inode号;然后,通过inode号,得到inode信息,最后,由inode找到文件数据所在的block,现在可以处理文件数据了。
2. inode和文件的关系
当创建一个文件的时候,就给文件分配了一个inode。一个inode只对应一个实际文件,一个文件也会只有一个inode。inodes最大数量就是文件的最大数量。
C 语言 Linux
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。