用c语言实现自己的close()和库的close()区分的代码
时间: 2024-03-13 19:45:12 浏览: 18
在C语言中,我们可以使用函数指针来实现不同的close()函数。下面是一个示例代码,可以区分自定义的close()和库的close()函数。
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void my_close(int fd) {
printf("My close() function is called.\n");
close(fd);
}
int main() {
int fd = open("test.txt", O_RDWR);
if (fd == -1) {
printf("Failed to open file.\n");
exit(1);
}
// 定义函数指针
void (*my_close_ptr)(int);
my_close_ptr = my_close;
// 关闭文件
my_close_ptr(fd); // 调用自定义的close()函数
close(fd); // 调用库的close()函数
return 0;
}
```
在上面的代码中,我们定义了一个自定义的`my_close()`函数,并将其赋值给一个函数指针`my_close_ptr`。当我们调用`my_close_ptr(fd)`时,实际上是调用了我们自己定义的`my_close()`函数。
在主函数中,我们首先调用了我们自定义的`my_close()`函数来关闭文件,然后调用了库的`close()`函数来关闭文件。这样就可以区分自定义的close()函数和库的close()函数了。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)