Nazwa utworzonego pliku tymczasowego.

0

Czy da się pobrać nazwę pliku tymczasowego utworzonego za pomocą:
plik = tmpfile(); ?
Chcę zapisać plik tymczasowy a następnie otworzyć go poleceniem z systemu (system()).

0

Ok, nie wiedziałem, że mkstemp() zminia wzór na nazwę utworzonego pliku.
Przy kompilacji:

...
char tname[]="/tmp/plik.XXXXXX";
tmp=mkstemp(tname);
...

wywala mi uwagę:
warning: assignment makes pointer from integer without a cast [enabled by default]
Jeżeli dobrze rozumiem to chodzi o to, że dla mkstemp ma być dany wskaźnik a ja dałem mu integer. tname nie jest wskaźnikiem?

0

Zauważ, że nadal nie znasz nazwy pliku. Powinieneś użyć funkcji tmpnam.

0

Poprzednie pytanie dotycznące uwagi komplatora nieaktualne - źle zrozumiałem błąd.

W podręczku tmpname() jest napisany "Never use this function", wiele osób pisze żeby nie używać, kompilator wywala uwagę, że jej użycie jest niebezpieczne i lepiej użyć mkstemp.

mkstemp wpisuje do podanej mu tablicy nazwę utworzonego pliku.

0

Upon successful completion, mkstemp() shall return an open file descriptor. Otherwise, -1 shall be returned if no suitable file could be created.

I jest jeszcze taki problem, że istnieje tylko pod Linuksem.

PS. Sorry. Faktycznie funkcja modyfikuje parametr template.

1 użytkowników online, w tym zalogowanych: 0, gości: 1