Lệnh fopen trong C?

FILE*fopen(const char * filename,const char * mode);
Mong các cao nhân giải thích dùm em cái const char *filenam với const char *mode,nếu bỏ const đi có sao ko ?
Trong sách nó ví dụ là
FILE *fptr:
fptr=fopen(“mylife”,“r+t”);
Sao thấy ko giống cấu trúc lắm ? Mong mn giúp em ạ!

mode là kiểu mở file.
r là mở file để đọc
w là mở file để ghi

Phải có mode nhé.

ý mình là trên cấu trúc là const char * filename mà ở dưới thì ko có , trong trường hợp này là gì bạn?

const char * filename
đưa vào 1 con trỏ kiểu char, trỏ đến nơi chứ đừng dẫn mở file, bỏ const nghĩa là hằng con trỏ , k được thay đổi nội dung ở địa chỉ mà con trỉ filename trỏ tới trong hàm đó

1 Like

Lên cppreference đọc cho chắc cú.

bạn giải thích dùm luôn sao Ví dụ và cấu trúc quy định là ko giống nhau ?
cái có * cái ko có *?

đang hỏi về C mà bạn ?

Theo mình nghĩ thì cái có/không const (+ con_trỏ) trong prototype để cho người sử dụng hàm biết là hàm đó không/có thay đổi nội dung con trỏ thôi (cho dù không có const thì kết quả cũng không thay đổi).
Ví dụ, hàm strcpy có prototype như sau: char *strcpy( char *dest, const char *src ); Nhìn vào là có thể thấy được dest sẽ bị thay đổi nội dung còn src thì không. Là vậy đó :joy:

Mấy hàm thuộc C chuẩn như thế này thì bạn nên tìm kiếm trên Google thì hay hơn hoặc cũng có thể đọc ở đây.

P/s: mình nghĩ nên tránh gọi “hàm” là lệnh, vì khi bạn muốn tìm kiếm bằng tiếng anh thì chỉ có fopen function chứ không có fopen command!

3 Likes

Trong cái bạn mới đưa á

  1. Opens a file indicated by filename and returns a pointer to the file stream associated with that file. mode is used to determine the file access mode.
    thì có đoạn pointer to the file stream associate with that file…mình ko hiểu file stream là cái gì ? nếu có tài liệu về nói cho mình xin
    P/S: mình bị rối chỗ stream(cái j mà có chữ stream),thấy nó là ngán à

Protptype:
FILE*fopen(const char * filename,const char * mode);

Ex

FILE *fptr:
fptr=fopen("mylife","r+t");
Sao thấy ko giống cấu trúc lắm ? Mong mn giúp em ạ!

m thấy giống mà?
hàm fopen trả về 1 con trỏ kiểu FILE, tham sô vào là 1 xâu đường dẫn file, 1 xâu kiểu mở file

1 Like

Vừa có C vừa có C++ mà :smiley: tốt hơn cplusplus vạn lần.

1 Like

Bạn cứ hiểu đơn là khi gọi hàm thì nó sẽ nhờ hệ điều hành “mở” file và trả về cho bạn 1 thứ-gì-đó (filestream) để có thể thao tác (như là) với file thật trên đĩa cứng. Mode là chế độ truy cập file đó thôi.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?