Hàm freopen() trong C
Hàm FILE *freopen(const char *filename, const char *mode, FILE *stream) trong Thư viện C chuẩn gắn kết một filename mới với Stream đã cho và cùng lúc đó đóng FILE cũ trong Stream.
Khai báo hàm freopen() trong C
Dưới đây là phần khai báo cho hàm freopen() trong C:
FILE *freopen(const char *filename, const char *mode, FILE *stream)
Tham số
filename − Đây là chuỗi chứa tên file để được mở.
mode − Đây là chuỗi chứa chế độ truy vập file. Bao gồm:
mode | Miêu tả |
---|---|
"r" | Mở một file để đọc. File phải tồn tại |
"w" | Tạo một file trống để ghi. Nếu một file với cùng tên đã tồn tại, nội dung của nó bị tẩy đi và file được xem như một file trống mới |
"a" | Phụ thêm (append) tới một file. Với các hoạt động ghi, phụ thêm dữ liệu tại cuối file. File được tạo nếu nó chưa tồn tại |
"r+" | Mở một file để ghi và đọc. File phải tồn tại |
"w+" | Tạo một file trống để ghi và đọc |
"a+" | Mở một file để đọc và phụ thêm |
stream − Đây là con trỏ tới một đối tượng FILE mà nhận diện Stream để được mở lại.
Trả về giá trị
Nếu file được mở lại thành công, hàm trả về một con trỏ tới một đối tượng nhận diện Stream đó, nếu không thì con trỏ null được trả về.
Ví dụ
Chương trình C sau minh họa cách sử dụng của hàm freopen() trong C:
#include <stdio.h> int main () { FILE *fp; printf("Dong text nay hien thi tren stdout\n"); fp = freopen("baitapc.txt", "w+", stdout); printf("Dong text nay duoc ghi vao baitapc.txt\n"); fclose(fp); return(0); }
Biên dịch và chạy chương trình trên sẽ gửi dòng sau tại STDOUT trước:
Sau lời gọi tới hàm freopen(), nó gắn kết STDOUT tới baitapc.txt, vì thế bất cứ cái gì chúng ta ghi tại STDOUT sẽ đi vào trong baitapc.txt. Vì thế, baitapc.txt sẽ có nội dung sau:
Bây giờ bạn theo dõi nội dung của file trên bởi sử dụng chương trình C sau:
Theo Tutorialspoint
Bài trước: Hàm fread() trong C
Bài tiếp: Hàm fseek() trong C
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:


Cũ vẫn chất
-
‘Để giành’ hay ‘để dành’, ‘dành cho’ hay ‘giành cho’, cách viết nào đúng chính tả?
Hôm qua -
11 địa danh bí ẩn bị làm mờ trên Google Maps, điều gì đang bị che giấu?
Hôm qua -
12 giờ trưa là AM hay PM trong tiếng Anh?
Hôm qua 1 -
Cách cài Ubuntu song song với Windows bằng USB
Hôm qua -
Antimalware Service Executable là gì và tại sao nó lại chạy trên máy tính?
Hôm qua -
Cách tắt chế độ Secure Boot và mở chế độ Boot Legacy
Hôm qua -
Đáp án Thử Tài Lịch Sử Liên Quân FULL các đáp án, gợi ý
Hôm qua 21 -
8 cách kiểm tra ổ cứng hiệu quả giúp khám sức khỏe định kỳ của ổ cứng
Hôm qua -
Cách sửa lỗi 0x0000011b khi in qua mạng trên Windows 10
Hôm qua 12 -
Cách chuyển đổi từ Legacy sang UEFI trong BIOS
Hôm qua 4