ฟังก์ชัน fopen() ในภาษา C ใช้สำหรับเปิดไฟล์ที่ระบุ
Syntax
FILE *fopen(filename, mode)
Mode ที่ถูกต้อง: 'r', 'w', 'a', 'r+', 'w+', 'a+' (รายละเอียดดูใน C library reference)
fopen() สำหรับไฟล์ที่มีอยู่แล้วในโหมด Write ('w' / 'w+')
- ถ้าไฟล์ ไม่มีอยู่: สร้างไฟล์ใหม่ว่างเปล่า
- ถ้าไฟล์ มีอยู่แล้ว: ลบเนื้อหาเดิมทั้งหมด ก่อนเขียนข้อมูลใหม่ (Truncate)
ตัวอย่าง: เขียนทับไฟล์ที่มีอยู่
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *opFile = fopen("test.txt", "w");
if (opFile == NULL) {
puts("Couldn't open file");
exit(0);
} else {
fputs("includehelp", opFile);
puts("Write operation successful");
fclose(opFile);
}
return 0;
}
ผลลัพธ์
Write operation successful
สถานะไฟล์:
- เนื้อหาเดิม: C programming language
- เนื้อหาหลังเขียน: includehelp (ข้อมูลเดิมหายไปทั้งหมด)
วิธีแก้ปัญหา: โหมดอื่นที่ปลอดภัยกว่า
1. โหมด 'a' (Append) - เพิ่มข้อมูลต่อท้าย
FILE *opFile = fopen("test.txt", "a");
ผลลัพธ์: เนื้อหาเดิมคงอยู่ เพิ่ม "includehelp" ต่อท้าย → C programming language includehelp
2. โหมด 'wx' (Exclusive Create) - ป้องกันเขียนทับ
FILE *opFile = fopen("test.txt", "wx");
ผลลัพธ์: คืนค่า NULL หากไฟล์มีอยู่แล้ว (ไม่เขียนทับ) ต้องตรวจสอบ NULL เสมอ
สรุป: ใช้ 'w' เมื่อต้องการเขียนทับ ใช้ 'a' เมื่อต้องการเพิ่มข้อมูล ใช้ 'wx' เมื่อต้องการสร้างไฟล์ใหม่เท่านั้น