/* id的格式为usr+数字,生成文件中每个id占一行 */
#include <iostream>
#include <string>
#include <sstream>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
using namespace std;
int main(int argc, char *argv[])
{
if (argc != 3)
{
cout << "usage: gen [count] [outfile]" << endl;
exit(EXIT_FAILURE);
}
int nCount = atoi(argv[1]);
string strOutFile(argv[2]);
int nFd = open(strOutFile.c_str(), O_WRONLY | O_CREAT | O_EXCL, S_IRWXU);
if (nFd < 0)
{
cout << "open failed: " << strerror(errno) << endl;
exit(EXIT_FAILURE);
}
string strPrefix("usr");
stringstream id;
for (int i = 1; i <= nCount; i++)
{
id.str("");
id << i << endl;
string strUsr = strPrefix + id.str();
size_t nBytes = strlen(strUsr.c_str());
if (write(nFd, strUsr.c_str(), nBytes) != (ssize_t)nBytes)
{
cout << "write failed: " << strerror(errno) << endl;
close(nFd);
exit(EXIT_FAILURE);
}
}
close(nFd);
exit(EXIT_SUCCESS);
}
//g++ gen.cpp -Wall -g -O -o gen
//./gen 1000000 1.txt