000
20.12.2002, 20:15 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
Erstellt von virtual Das folgende Programm ist super simpel und dient zur Demonstration, wie man Verzeichnisinhalte in Linux einliest (laesst sich so auf jedes andere UNIX System portieren).
C++: |
#include <string> #include <vector> #include <dirent.h> #include <errno.h>
using namespace std;
vector<string>
my_readdir(const string& p_strDir) { vector vstrReturn; DIR* poDir; struct dirent* poEntry; // Open the directory poDir = opendir(p_strDir.c_str()); if (NULL==poDir) { throw errno; }
// Read in loop while (NULL!=(poEntry=readdir(poDir))) { vstrReturn.push_back(string(poEntry->d_name)); } if (EBADF == errno) { closedir(poDir); throw EBADF; }
// cleanup and return closedir(poDir); return vstrReturn; }
int main(int /*argc*/,char** argv) { try { argv++; while(*argv) { cout << "Listing of directory " << (*argv) << ":" << endl; vector<string> entries = my_readdir(string(*argv));
for(vector<string>::iterator i=entries.begin();i!=entries.end();++i) { cout << (*i) << endl; } argv++; } } catch (int error) { cerr << "ERROR: " << strerror(errno) << endl; return 1; } return 0; }
|
-- class God : public ChuckNorris { }; Dieser Post wurde am 13.01.2003 um 15:22 Uhr von virtual editiert. |