Linux C | cat命令的简单实现

代码:

/*******************************************************************
* > File Name: cat.cpp
* > Create Time: 2021年11月22日 星期一 17时35分37秒
******************************************************************/

#include <iostream>
#include <stdio.h>
using namespace std;

int main(int argc, char* argv[])
{
if (argc != 2){
cout << "Usage:" << argv[0] << " <file>" << endl;
return (-1);
}

FILE *fp;
int c;

if((fp = fopen(argv[1], "r")) == NULL){
cout << "open file " <<argv[1] << "error" << endl;
return (-2);
}

while((c = fgetc(fp)) != EOF){
cout << (char)c ;
}
cout << endl;

fclose(fp);

return 0;
}

编译:

lanfeiy@msil-virtual-machine:~/test$ make
g++ -o cat cat.cpp -g -Wall

运行:

lanfeiy@msil-virtual-machine:~/test$ ./cat
Usage:./cat <file>
lanfeiy@msil-virtual-machine:~/test$ ./cat cat.cpp
/*******************************************************************
* > File Name: cat.cpp
* > Create Time: 2021年11月22日 星期一 17时35分37秒
******************************************************************/

#include <iostream>
#include <stdio.h>
using namespace std;

int main(int argc, char* argv[])
{
if (argc != 2){
cout << "Usage:" << argv[0] << " <file>" << endl;
return (-1);
}

FILE *fp;
int c;

if((fp = fopen(argv[1], "r")) == NULL){
cout << "open file " <<argv[1] << "error" << endl;
return (-2);
}

while((c = fgetc(fp)) != EOF){
cout << (char)c ;
}
cout << endl;

fclose(fp);

return 0;
}