2009-02-12 8 views

Odpowiedz

6

Jeśli naprawdę potrzebujesz tylko nazwy katalogu, użyj stałego makra ciąg znaków P_tmpdir, zdefiniowanego w <stdio.h>.

-3

Możesz użyć opcji GCC -Wno-deprecated-declarations, aby wyłączyć wszystkie ostrzeżenia takie jak ta. Sugeruję jednak, abyś poprawnie obsługiwał ostrzeżenie i skorzystaj z sugestii kompilatora.

+4

Dla mnie to nie ucisza tego typu ostrzeżenia. – Jack

+1

U mnie to też nie uciszyło, nawet z -w – FabioCosta

+5

Jest to ostrzeżenie generowane na etapie łączenia, a nie kompilacji, więc to ostrzeżenie nie ma wpływu. (Oddanie go do etapu łącza również nie działa). (In g ++ 4.8.2, przynajmniej) –

0

"Funkcja tempnam() zwraca wskaźnik do łańcucha, który jest poprawną nazwą pliku, i taki, że plik o tej nazwie nie istnieje, gdy tempnam() jest zaznaczone."

Ostrzeżenie powstaje z powodu stanu wyścigu między sprawdzeniem a późniejszym utworzeniem pliku.

Chcesz uzyskać tylko nazwę katalogu? Do czego to powinno być dobre?

Jak już powiedziałeś nieznajomy, możesz wyłączyć to (i podobne ostrzeżenia) za pomocą deklaracji -Niezawierających do użycia.

+0

Potrzebuję utworzyć plik FIFO w katalogu tymczasowym, więc używam dirname (tempnam ...) – jackhab