|
参考一些unix和linux编程的书写了一个小程序,功能很简单,例如生成的可执行文件叫out,那么用命令 out -c hello 可以建立一个hello目录,并在该目录下建立一个叫hello的文件,向文件中写入hello world,用 out -d hello 可以删除生成的文件,原先用C语言写的,可以正常运行,现在我想把他改成C++的,就不能运行了。
C程序如下:
[PHP]#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
void creatfile (char *filename);
void delfile (char *filename);
void useage (void);
int
main (int argc, char *argv[])
{
char option;
char *filename = 0;
while ((option = getopt (argc, argv, "d: c:")) != -1)
switch (option)
{
case 'c':
{
filename = optarg;
creatfile (filename);
}
break;
case 'd':
{
filename = optarg;
delfile (filename);
}
break;
default:
useage ();
break;
}
return 0;
}
void
useage (void)
{
printf ("use '-c' or '-d'\n");
exit (1);
}
void
creatfile (char *filename)
{
FILE *file;
mkdir (filename, 0775); /*创建一个名为filename,权限是775的目录*/
chdir (filename); /*进入目录*/
file = fopen (filename, "w"); /*建立文件*/
printf ("file \"%s\" is created.\n", filename);
fprintf (file, "hello world.");
fclose (file);
}
void
delfile (char *filename)
{
printf ("%s\n", filename);
printf ("%s\n", getenv ("WD")); /*当前目录 */
chdir (filename); /*改变目录 */
printf ("%s\n", getenv ("WD")); /*可以看到程序运行时改变工作目录不会改变系统环境变量 */
unlink (filename); /*删除文件*/
chdir ("..");
rmdir (filename);
printf ("file \"%s\" is deleted.\n", filename);
}
[/PHP]
C++程序如下:
[PHP]#include<iostream>
#include<fstream>
#include<cstdlib>
#include<sys/stat.h>
#include<unistd.h>
using namespace std;
void creatfile (char *filename);
void delfile (char *filename);
void useage (void);
int
main (int argc, char *argv[])
{
char option;
char *filename = 0;
while ((option = getopt (argc, argv, "d: c:")) != -1)
switch (option)
{
case 'c':
{
filename = optarg;
creatfile (filename);
}
break;
case 'd':
{
filename = optarg;
delfile (filename);
}
break;
default:
useage ();
break;
}
return 0;
}
void
useage (void)
{
cout<<"use '-c' or '-d'\n"<<endl;
exit (13);
}
void
creatfile (char *filename)
{
mkdir (filename, 0775);
cout<<"make dir "<<filename<<endl;
chdir (filename);
cout<<"change to dir "<<filename<<endl;
fstream file(filename);
cout<<"file "<<filename<<" is created.\n"<<endl;;
string str="hello world!";
file<<str;
file.close ();
}
void
delfile (char *filename)
{
cout<<filename<<endl;
cout<<getenv ("WD")<<endl; /*可以看出程序运行时 */
chdir (filename); /*改变目录 */
cout<<getenv ("WD")<<endl; /*不改变系统环境变量 */
unlink (filename);
chdir ("..");
rmdir (filename);
cout<<"file "<<filename<<" is deleted."<<endl;
}
[/PHP] |
|