C语言文件操作:判断文件是否已打开
C语言文件操作:判断文件是否已打开
本文介绍如何在C语言中使用文件指针数组打开多个文件,并通过比较文件指针地址判断文件是否已打开。c#include <stdio.h>
int main() { FILE *filePointers[10]; // 文件指针数组 FILE *comparePointer; // 用于比较的文件指针
// 打开10个二进制文件 for (int i = 0; i < 10; i++) { char fileName[20]; sprintf(fileName, 'file%d.bin', i+1); // 文件名为file1.bin, file2.bin, ..., file10.bin filePointers[i] = fopen(fileName, 'rb'); if (filePointers[i] == NULL) { printf('无法打开文件 %s
', fileName); return 1; } }
// 比较文件指针 comparePointer = filePointers[5]; // 假设要比较的是第6个文件
int isOpen = 0; // 是否已经打开 for (int i = 0; i < 10; i++) { if (filePointers[i] == comparePointer) { isOpen = 1; break; } }
if (isOpen) { printf('文件已经打开
'); } else { printf('文件未打开 '); }
// 关闭所有文件 for (int i = 0; i < 10; i++) { fclose(filePointers[i]); }
return 0;}
代码解释:
- 创建文件指针数组:
FILE *filePointers[10];创建一个包含10个文件指针的数组,用于存储打开的文件指针。2. 打开文件: 使用循环打开10个名为 'file1.bin' 到 'file10.bin' 的二进制文件,并将文件指针存储在filePointers数组中。3. 设置比较文件指针:comparePointer = filePointers[5];将comparePointer指向第6个文件指针,用于后续比较。4. 遍历比较文件指针: 再次遍历filePointers数组,将每个文件指针与comparePointer进行比较。如果地址相同,则表示该文件已打开。5. 输出结果: 根据比较结果输出文件是否已打开的信息。6. 关闭文件: 使用循环关闭所有已打开的文件。
注意:
- 比较文件指针地址只是判断文件是否已打开的一种方法,并非绝对可靠。* 在实际应用中,建议使用更健壮的方法,例如使用文件描述符进行比较。
原文地址: http://www.cveoy.top/t/topic/mCX 著作权归作者所有。请勿转载和采集!