昨天同门问我一个问题,怎么打印输出自己写的代码。昨天由于回寝室了,没有写。今天上午来实验室想了想这个问题。思路是用open函数打开文件(自己写的代码文件),读取代码文件,然后打印就可以了。
以下是代码实现:
#include <iostream>
#include <unistd.h>
#include <fcntl.h>
//一个小测试
int main()
{
char arry[1024] ={0};
int fd = open("./code.cpp",O_RDONLY);
if(fd == -1)
{
std::cout << "打开文件失败!" << std::endl;
}
read(fd,arry,1024);
for(int i = 0; i < 1024; ++i)
{
std::cout << arry[i];
if(arry[i] == '/0')
{
std::cout << std::endl;
}
}
return 0;
}
这只是一个小代码。没有关闭文件(close一下就行)。
假如代码比较多的话(超过1024个字符)这个代码是显示不全的,因为我设置的缓存是1024个文件描述符,想要实现大于1024个字符的代码使用(lseek函数就可以)这个不做测试了。应该还有跟好的代码实现。比如动态内存的实现等等。
这篇博客最后也有类似的代码。是利用管道实现的,不太好理解,但是比较简洁。
https://blog.youkuaiyun.com/m0_38036750/article/details/86529510