2009-02-12 7 views

Trả lời

6

Nếu bạn thực sự chỉ muốn tên thư mục, hãy sử dụng macro không đổi chuỗi P_tmpdir, được xác định trong <stdio.h>.

-3

Bạn có thể sử dụng tùy chọn -Wno-deprecated-declarations của GCC để tắt tất cả cảnh báo như thế này. Tôi đề nghị bạn xử lý các cảnh báo đúng, mặc dù, và có những gợi ý của trình biên dịch.

+4

Đối với tôi, nó không làm im lặng loại cảnh báo này. – Jack

+1

Đối với tôi nó cũng không bị tắt tiếng, ngay cả với -w – FabioCosta

+5

Đây là cảnh báo được tạo ra ở giai đoạn liên kết, không biên dịch, vì vậy cảnh báo này không có hiệu lực. (Cho nó vào giai đoạn liên kết cũng không hoạt động). (Trong g ++ 4.8.2, ít nhất) –

0

"Hàm tempnam() trả về một con trỏ tới một chuỗi là tên tệp hợp lệ và sao cho tệp có tên này không tồn tại khi tempnam() được chọn".

Cảnh báo phát sinh do điều kiện cuộc đua giữa kiểm tra và tạo tệp sau.

Bạn chỉ muốn nhận tên thư mục? Điều đó sẽ tốt cho điều gì?

Giống như người lạ đã nói, bạn có thể vô hiệu hóa cảnh báo này (và các cảnh báo tương tự) bằng cách sử dụng -Các tuyên bố không dùng nữa.

+0

Tôi cần tạo tệp FIFO trong một thư mục tạm thời để tôi sử dụng dirname (tempnam ...) – jackhab