Cách nổi tiếng của việc tạo ra một đối tượng fstream
là:Tạo đối tượng fstream từ một con trỏ FILE *
ifstream fobj("myfile.txt");
tức. sử dụng tên tệp.
Nhưng tôi muốn tạo đối tượng ifstream bằng cách sử dụng bộ mô tả tệp.
Lý do: Tôi muốn thực hiện một lệnh sử dụng
_popen()
._popen()
trả về kết quả dưới dạngFILE*
. Vì vậy, có một con trỏ FILE * liên quan nhưng không có tên tập tin.
@Joe: Posix tập tin mô tả vẫn chưa một điều. Có lẽ, cả hai C++ iostreams và C I/O đều được triển khai trên nền tảng Posix. Câu hỏi hiện tại là hợp lý hơn, mặc dù, kể cả iostreams * và * C I/O là một phần của thư viện chuẩn. –
đây là bản sao của http://stackoverflow.com/questions/2746168/how-to-construct-ac-fstream-from-a-posix-file-descriptor vì bạn có thể sử dụng 'fileno' trên' FILE * ' trả về từ 'popen' – Alnitak