Tôi cần phải tạo một tệp tạm thời trong chương trình C, viết một số dữ liệu vào nó, rồi gọi lệnh bên ngoài (qua exec hoặc hệ thống) để thực hiện một số xử lý trên tệp mà tôi vừa tạo. Tôi đã không viết lệnh bên ngoài và cũng không khả thi để tích hợp nó vào chương trình của tôi vì vậy tôi không nghĩ rằng tôi có thể chia sẻ một bộ mô tả đã mở với nó. Vì vậy, tôi cần phải biết tên của tập tin tạm thời được tạo ra.Làm cách nào để mở tệp tạm thời VÀ nhận tên tệp của nó?
Chức năng tempname() thực hiện điều này, nhưng tiếc là nó khuyến cáo bạn không sử dụng chính nó, do điều kiện chủng tộc có thể giữa tên và mở tệp và không có chức năng nào đề xuất (tmpfile và mkstemp)) cung cấp một cách để tìm ra tên thực của tệp được tạo.
'mkstemp' trả về tên; nó sẽ sửa đổi đối số mẫu được truyền vào (mà là một char *, không phải là một ký tự const *) thay thế giá trị X bằng các giá trị thực tế. – Joe