tôi đã mô tả cho một socket TCP theo cách thức sau đây:Có thể mô tả các ổ cắm được chuyển đổi thành File Pointers không?
int desc = accept(socket_descriptor, &client_address, &len)
Bây giờ từ mô tả này desc
Tôi muốn có được một con trỏ tập tin. Có thể sử dụng fdopen()
ở đây không?
Lý do tôi muốn lấy con trỏ tệp là vì tôi đang thực hiện thay đổi đối với mã hiện có ghi dữ liệu vào tệp cục bộ. Bây giờ, tôi muốn mở rộng chức năng của nó để nó có thể luân phiên viết cho một máy khách TCP. Tôi không muốn viết lại tất cả các chức năng và đang nghĩ đến việc bằng cách nào đó có thể sử dụng cơ sở hạ tầng hiện có. Các chức năng hiện có sử dụng con trỏ tập tin để ghi vào tập tin. Tôi đã tự hỏi nếu nó có thể làm cho cùng một chức năng ghi vào một dòng TCP mà không thực hiện bất kỳ thay đổi.
Hầu hết các tệp không được xếp vào bộ đệm, chỉ 'stdout'. Tôi không chắc chắn nếu có một cách để thiết lập một tập tin được dòng đệm, nhưng tôi tin rằng hầu hết sẽ được khối đệm, mà nên được một chút thân thiện hơn socket. –
@ChrisLutz: Hàm này là 'setlinebuf'. Tôi nghĩ rằng 'stdout' chỉ là dòng đệm nếu nó nối với một thiết bị đầu cuối, nhưng tôi không chắc chắn. –
@DietrichEpp - Cảm ơn bạn. Và tôi nghĩ bạn đúng về 'stdout'. –