2010-08-18 46 views
5

Có cách nào để truy cập bộ mô tả tệp của tệp được mở bằng C++ không? Vì vậy ...Cách truy cập Trình mô tả tệp của tệp mở

#include <iostream> 
#include <fstream> 
using namespace std; 

int main() { 
     ifstream inputFile("file.txt",ios::in); 
     cout << inputFile.fileDesc << endl;//made up call 
     return 0; 
} 

Câu hỏi đặt ra là, có điều gì giống như tệpDesc ​​tồn tại cho ifstream không? Nếu không làm thế nào tôi sẽ đi về việc này?

+0

Câu hỏi đặt ra là tại sao bạn muốn thực hiện việc này? Nếu bạn giải thích hợp lý của bạn sau đó có thể là một thay thế có thể được tìm thấy mà giải quyết vấn đề thực tế của bạn. –

+0

Lý do tôi cần bộ mô tả tập tin là tôi cần chạy fstat() trên một tệp như một thời gian sau khi nó được mở. Tôi nhận ra rằng tôi có thể sử dụng stat() trên tên tập tin nhưng tôi đang sử dụng fstat() vì vậy tôi có thể nhận được số liệu thống kê trên suối là tốt. Tôi chỉ muốn một phương pháp ngắn gọn có thể được sử dụng cho các mô tả dòng được bảo lưu (0 (STDIN), 1 (STDOUT), và 2 (STDERR) và cho các tệp được mở. –

+0

EDIT: Tôi nhận ra rằng ifstream là một luồng, nhưng nó không có một bản lưu trữ được bảo lưu như các luồng IO được đề cập ở trên. –

Trả lời

4

Nếu bạn đang cố truy cập TẬP_TIN * từ luồng thì câu trả lời về cơ bản là "bạn không thể" như được người khai ngộ khai báo nhiều hơn tôi here.

+0

+1 Điều này – karlphillip

+0

Vâng, tôi dự định chạy fstat() trên bộ mô tả tập tin, nhưng tôi có thể sử dụng stat() trên tên tệp thực tế. –

0

Hãy xem open():

Chức năng mở tạo ra và trả về một bộ mô tả tập tin mới cho các tập tin có tên theo tên tập tin.

+1

Đây không phải là một ý tưởng hay, vì '" file.txt "' có thể ám chỉ đến một tập tin hoàn toàn khác nhau trong khi đó. –

Các vấn đề liên quan