////////////// using namespace std; #include #include #include #include #include /* for perror() */ #include /* for exit() */ string dirname(const string path){ size_t where = path.rfind("/"); if (where == string::npos) return "."; return path.substr(0, where); } int main(int argc, char** argv){ int verbosity(0); char* nargv[1+argc]; for (int ii = 1; ii <= argc; ii++){ if (verbosity) { if (argv[ii] == 0) cout << "zero" << endl; else cout << "[" << argv[ii] << "]" << endl; } nargv[1+ii] = argv[ii]; } nargv[1] = (char*)"-c"; nargv[0] = (char*)"/home/jsd/bin/ECHO"; nargv[0] = (char*)"/bin/bash"; execv(*nargv, nargv); cerr << "bash-c: exec failed for '" << *nargv << "' : "; perror(0); }