static void parse_opts_(wsn_all_configs_t *configs, int argc, char **argv) { int opt; while (-1 != (opt = getopt(argc, argv, "c:h"))) { switch (opt) { case 'c': configs->conf_file = optarg; break; case 'h': usage_(0); break; default: usage_(1); } } }
int _tmain(int argc, TCHAR *argv[]) { setlocale( LC_ALL, "" ); bool append = false; int rc = 1; if (argc > 1) { if (_tcsicmp(argv[1], _T("/i")) == 0 || _tcsicmp(argv[1], _T("-i")) == 0) { if (argc < 4) { return 1; } else { if (_tcsicmp(argv[2], _T("/a")) == 0 || _tcsicmp(argv[2], _T("-a")) == 0) append = true; else if (_tcsicmp(argv[2], _T("/o")) == 0 || _tcsicmp(argv[2], _T("-o")) == 0) ; //override else { usage_(argv[0]); return 1; } if (!_tfreopen(argv[3], _T("r"), stdin)) { _tprintf(_T("Error opening file %s"), argv[3]); usage_(argv[0]); return 1; } } rc = import_(append); } else if (_tcsicmp(argv[1], _T("/e")) == 0 || _tcsicmp(argv[1], _T("-e")) == 0) { if (argc > 2) if (!_tfreopen(argv[2], _T("w"), stdout)) { _tprintf(_T("Error opening file %s"), argv[2]); usage_(argv[0]); return 1; } rc = export_(); } else { usage_(argv[0]); } } else { usage_(argv[0]); } return rc; }
/* 引数例: "C:\\users\\tmp.0001.txt" "../..//users///tmp.0001.txt" "C://users///tmp.0001.txt" "C:\\users" "/home" "C:\\users/" "/home/" "C:\\users\\tmp.0001.txt" "/home/tmp.0001.txt" "C:/Users/public/Desktop/一時的フォルダ→すぐ削除する" */ int main(int argc ,const char* argv[]) { if (argc == 1) { usage_(argv[0]); return 0; } else if (argc == 2) { /* 注:パスはutf8で格納する */ #ifdef _WIN32 cppl::file_system_path pa(osapi::utf8_from_cp932(argv[1])); #else cppl::file_system_path pa(argv[1]); #endif // cppl::file_system_path pa(argv[1]); return check_file_or_dir_( pa ); } else if (argc == 3 && std::string("-md") == argv[1]) { /* 注:パスはutf8で格納する */ #ifdef _WIN32 cppl::file_system_path pa(osapi::utf8_from_cp932(argv[2])); #else cppl::file_system_path pa(argv[2]); #endif return mkdir_( pa ); } else if (argc == 4 && std::string("-rn") == argv[1]) { /* 注:パスはutf8で格納する */ #ifdef _WIN32 cppl::file_system_path pa1(osapi::utf8_from_cp932(argv[2])); cppl::file_system_path pa2(osapi::utf8_from_cp932(argv[3])); #else cppl::file_system_path pa1(argv[2]); cppl::file_system_path pa2(argv[3]); #endif return rename_( pa1 , pa2 ); } std::cerr << "Error:Bad argument.\n"; return 1; }