filename에 값이 들어가 있어야 됩니다.
man 페이지를 자세히 읽어보시면 알겠지만...
filename의 마지막 6글자는 'X'여야 되구요... const형태이면 안됩니다.
mkstemp를 수행한 뒤에 filename을 출력해보면 'X'부분이 실제 파일이름으로 바뀌기 때문입니다...
int fd;
char fname[10] = "tmpXXXXXX";
fd=mkstemp(fname);
이런 식입니다.
노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5
filename에 값이 들어가 있어야 됩니다.man 페이지를 자세히
filename에 값이 들어가 있어야 됩니다.
man 페이지를 자세히 읽어보시면 알겠지만...
filename의 마지막 6글자는 'X'여야 되구요... const형태이면 안됩니다.
mkstemp를 수행한 뒤에 filename을 출력해보면 'X'부분이 실제 파일이름으로 바뀌기 때문입니다...
이런 식입니다.
노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5
답변 감사합니다.
좋은하루 되세요.
사족일지도 모르겠지만...답변 달고나서 관련 함수들을 찾아봤는데 te
사족일지도 모르겠지만...
답변 달고나서 관련 함수들을 찾아봤는데 temporary file로만 쓸 목적이고 굳이 system call을 쓰실 이유가 없다면 tmpfile() 함수를 쓰시는 것도 편할 것 같습니다.
이 함수는 temp로 쓸 새로운 파일을 'w+b'모드로 열고 파일 포인터를 되돌려 줍니다. 더더욱 좋은 점은 fclose하거나 프로그램이 (정상적으로) 끝날 때에 자동적으로 파일이 지워진다고 나와있군요.
프로그램 내에서 굳이 파일이름을 알 필요도 없고 오히려 깔끔해 보입니다.
노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5
아 그런게 있었네요.
tmpfile() 이라...
좋은거 배워갑니다. 감사합니다.
개념없는 초딩들은 좋은 말로 할때 DC나 웃대가서 놀아라. 응?
댓글 달기