??緊接著上一篇的分享,繼續(xù)做日志文件的讀取,點擊連接即可日志文件初始化https://blog.csdn.net/wjl990316fddwjl/article/details/135553238
1、將指針移動到文件末尾
//文件移動到結(jié)尾
fseek(fp, 0, SEEK_END);
2、定義當(dāng)前指針的位置
lastPosition = ftell(fp);
3、定義一個函數(shù),循環(huán)讀取日志?,每次讀取最新日志
? ?//主循環(huán)
?? ?void Main();
3.1、函數(shù)內(nèi)容
void XAgent::Main()
{
// 讀取最新日志
while (true)
{
// 將文件指針移動到上次讀取的位置
fseek(fp, lastPosition, SEEK_SET);
// 讀取新添加的內(nèi)容
char buffer[1024];
while (fgets(buffer, sizeof(buffer), fp) != nullptr)
{
cout<<buffer<<endl;
}
// 更新 lastPosition 到文件末尾,以便下次讀取新內(nèi)容
lastPosition = ftell(fp);
// 等待一段時間再繼續(xù)檢查文件,可以有效解決cpu的問題
this_thread::sleep_for(chrono::milliseconds(100));
}
}
4、在主函數(shù)里面調(diào)用
XAgent::Get()->Main();
5、測試,開啟兩個終端,在一個終端運行agent代碼,另一個終端用ssh連接服務(wù)器,輸入密碼之后,可以將運行結(jié)果同時展示在agent的終端上。
文章來源:http://www.zghlxwxcb.cn/news/detail-813944.html
完結(jié)?。。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-813944.html
到了這里,關(guān)于日志審計系統(tǒng)Agent項目創(chuàng)建——讀取日志文件(Linux版本)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!