티스토리 뷰
안녕하세요.
신랑각시의 신랑 입니다.
일하면서 간혹 파일이 존재하는 디렉토리를 삭제해야 하는 경우가 생깁니다.
아래 주석 부분은, man page 를 참조하여 callback 함수의 parameter 별 의미를 확인하고자 적어 놓은 것 입니다.
실제 사용에서는 삭제해도 무방할 듯 합니다.
(저는 항상 잊어 버리기 때문에 그냥 주석 처리 상태로 올립니다. )
#include <iostream>
#include <string>
#include <ftw.h>
#include <sys types.h>
#include <sys stat.h>
#include <unistd.h>
#include <errno.h>
#include <cstring>
int main(int argc, char * argv[])
{
if(argc != 2)
{
std::cout << "invalid argument" << std::endl;
return 0;
}
if(nftw(argv[1],
[](const char * fpath, const struct stat * sb, int tflag, struct FTW * ftwbuf) -> int {
/*-
// START - 테스트를 위함 ////
if(tflag == FTW_F)
std::cout << " FILE ";
else if(tflag == FTW_DP)
std::cout << " DIR ";
else if(tflag == FTW_DNR)
std::cout << " unreadable DIR ";
else if(tflag == FTW_SL)
std::cout << " LINK ";
else if(tflag == FTW_NS)
std::cout << " NS";
else
{
std::cout << "# " << FTW_F << " ";
std::cout << " " << tflag << " ";
}
std::cout << " LEVEL:" << ftwbuf->level << " ";
std::cout << " PATH: " << fpath << " ";
std::cout << " BASE: " << ftwbuf->base << " ";
std::cout << " LAST: " << fpath + ftwbuf->base << std::endl;
// END ////////////////////////
-*/
int ret = remove(fpath);
std::cout << "REMOVE : " << ret << " NAME:" << fpath << std::endl;
return 0;
},
2,
FTW_DEPTH | FTW_MOUNT | FTW_PHYS) != 0)
{
std::cout << "nftw fail " << errno << ":" << strerror(errno) << std::endl;
return 0;
}
std::cout << "success" << std::endl;
return 0;
}
'일하면서' 카테고리의 다른 글
| [short code] 8 byte endian 변환 (0) | 2017.12.26 |
|---|---|
| [short code] 반복적인 ftp 작업을 one command 로 (0) | 2017.12.11 |
| [short code] BCD encoding (0) | 2017.12.05 |
| [필요해서 만든 코드] - 포트 포워딩 (port forwarding) (0) | 2017.11.30 |
| [short code] c++ for vs map vs unordered_map 중 누가 빠를까? (0) | 2017.11.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ftp 스크립트
- client socket
- IPv6 client
- 엔디안 변환
- IPv4 and IPv6
- IPv6 echo server
- endian
- remove
- FTW
- sftp 자동접속
- ssh key 만들기
- c++
- 서버 경유
- IPv6 socket
- 8 byte 엔디안 변환
- forwarding
- ftp 자동접속
- ipv6 socket program
- ftp 자동접속 스크립트
- IPv6 IPv4 Dual client
- socket program
- endian 변환
- std:map
- 엔디안
- IPv6 server
- ssh key
- short code
- IPv6
- 8byte endian 변환
- BCD 변환
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
글 보관함
