目录
getpwuid函数 查看uid的name编辑
symlink函数软链接(创建快捷方式)
remove函数
rename函数
link硬链接
truncate函数控制文件大小
perror报错函数
strerror报错函数序列表
error报错函数:详细报错
Makefile编译函数、工程管理工具
系统调用和C库调用
1. 系统调用(System Call)
2. C 库调用(C Library Call)
总结
软连接和硬链接区别
硬链接(Hard Link)
软连接(Symbolic Link)
区别
结构体引用时,指针用箭头(info->d_name),变量用 (info.d_name)
组函数 getgrgid
**p和*argv[1]和二维数组使用时可以相互转化
getpwuid函数 查看uid的name
getgrgid函数查找gid的name
symlink函数软链接(创建快捷方式)
remove函数
2.remove rm -fr
int remove(const char *pathname);
功能:
删除一个文件
参数:
pathname:删除文件的路径
返回值:
成功返回0
失败返回-1
rename函数
link硬链接函数
link硬链接
硬链接:删除一个,相互不影响,不能链接文件夹
truncate函数控制文件大小
perror
df -h查看内存情况,找 / 系统存储情况
perror报错函数
strerror报错函数序列表
error报错函数:详细报错
error执行后会结束程序,aaaa语句不打印,即可证明
(只针对系统调用和C库调用检查),成功时返回0,非0失败,错误序列号
内置宏
无头文件即可使用
Makefile编译函数、工程管理工具
版本一
版本二:$^
第三版(推荐版本)
LIB 数学库
系统调用和C库调用
系统调用和 C 库调用是计算机编程中两种不同的功能调用方式,它们各自有不同的作用和实现机制。以下是它们之间的主要区别:
1. 系统调用(System Call)
-
定义:系统调用是操作系统提供的接口,允许用户程序请求操作系统执行特权操作,例如文件操作、进程管理、内存分配等。这些调用直接与操作系统内核进行交互。
-
功能:系统调用可以访问硬件资源或系统级功能。例如,打开文件、读取文件、创建进程、分配内存等。
-
实现:系统调用通常通过中断机制或特权指令进入内核模式。程序在用户模式下执行,发起系统调用时会切换到内核模式,这涉及上下文切换和系统保护机制。
-
示例:
- 在 Linux 上,
read()
和write()
是系统调用,用于文件的读写操作。 fork()
是一个系统调用,用于创建新进程。
- 在 Linux 上,
2. C 库调用(C Library Call)
-
定义:C 库调用是指通过 C 标准库(如
libc
)提供的函数进行的调用。C 库函数是封装好的接口,它们为用户程序提供更高级别的功能。 -
功能:C 库函数通常对系统调用进行封装,提供更简洁的接口,处理复杂的细节。例如,字符串处理、内存管理、数学计算等。
-
实现:C 库调用在用户空间执行,通常通过调用系统调用来实现具体的功能。库函数提供了对系统调用的抽象,使得编程更简洁。
-
示例:
printf()
是一个 C 库函数,用于格式化输出到控制台。malloc()
是一个 C 库函数,用于动态内存分配,实际可能会调用系统调用如brk()
或mmap()
来管理内存。
总结
- 系统调用 直接与操作系统内核进行交互,涉及操作系统资源的管理和操作。
- C 库调用 是对系统调用的封装,为程序员提供更高层次的接口,使得编程更为方便和高效。
简而言之,系统调用是底层的操作系统接口,而 C 库调用是对这些接口的更高层次封装。
软连接和硬链接区别
在 Linux 中,我们经常使用链接来创建文件的副本或者快捷方式。链接分为两种:硬链接(Hard Link)和软连接(Symbolic Link,又称符号链接)。
硬链接(Hard Link)
作用:
- 用来创建一个与源文件相同的文件名,使两个文件名指向同一个 i 结点(inode),对文件的备份有特别的用途。
特点:
- 在同一个文件系统内创建,不能跨文件系统。
- 文件名只是指向文件的 i 结点,不存储文件的实际内容。
- 多个硬链接指向相同的 i 结点,意味着只有一个文件的实际副本,多个文件名可以访问同一个文件内容。
- 如果文件被删除,文件名虽然不再可用,但文件内容依然存在,直到最后一个硬链接被删除。
举例:
ln source_file target_file
这时 target_file
就是 source_file
的硬链接。
软连接(Symbolic Link)
作用:
- 用来创建文件的快捷方式,类似 Windows 中的快捷方式。
特点:
- 可以在不同的文件系统之间创建。
- 是一个指向另一个文件的指针,其本身是一个独立的文件,记录了目标文件的路径。
- 如果目标文件被移动或删除,软连接会失效,无法访问原文件。
举例:
ln -s /path/to/original/file /path/to/target/link
这会在 /path/to/target/link
创建一个指向 /path/to/original/file
的软连接。
区别
- 跨文件系统:硬链接只能在同一文件系统内创建,软连接则可以在不同的文件系统之间创建。
- i 结点统一:硬链接不增加文件数量,只是增加文件的引用,所有的硬链接共享同一个 i 结点;而软连接是一个独立的文件。
- 删除目标文件:如果删除原文件(即软连接指向的文件),所有的软连接都失效,而硬链接不受影响,因为它们共享同一个 i 结点。
- 权限:硬链接需要对源文件有写权限,软连接则无此要求。
总结来说,硬链接是原始文件的副本,而软连接只是一个指向原始文件的指针。在实际使用中,软连接通常用于目录和不同文件系统之间的连接,而硬链接主要用于频繁读取和更新的普通文件,它们都可以被视为节省空间和加快文件访问速度的有效工具。
产生swp文件
.ll_ls_cat_func.c.swp
这样的文件是编辑器生成的交换文件,主要用于保存编辑状态以防数据丢失。这是 Vim 等文本编辑器用来保护编辑内容的一种机制。了解这些文件的目的和管理方式有助于更好地处理和维护编辑器生成的临时文件。