直接上代码,
#include<iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include<unistd.h>
#include <dirent.h>
using namespace std;
int main()
{
DIR * dir;
struct dirent * ptr;
char file_list[100][40];
int i=0;
string heartstr;
string sp = "|";
string heart = "heart";
dir = opendir("/root/demo/c++/chapter_one/"); //打开一个目录
int gatepid = getpid();
char pid[16];
snprintf(pid, sizeof(pid), "%d", gatepid);
//itoa(gatepid,pid,32);
//string pid = to_string(gatepid);
string ver = "1qaz";
string gatewaypid = ver + ":" + pid;
//string beatstatus = to_string(flat);
string pro;
string file_name;
// string beat = pro + ":" + flat;
printf("11111111\n");
while((ptr = readdir(dir)) != NULL)//循环读取目录数据
{
// printf("d_name : %s\n", ptr->d_name); //输出文件名
strcpy(file_list[i],ptr->d_name ); //存储到数组
if ( ++i>=100 )
break;
}
printf("i = %d\n",i);
heartstr = heart + sp + gatewaypid;
for(int j = 0; j < i; j++)
{
// printf("file name: %s\n",file_list[j]);
if(strcmp(file_list[j],".") == 0|| strcmp(file_list[j],"..") == 0)//去掉隐藏的 . .. 目录
{
printf("...........\n");
}
else
{
file_name = file_list[j];
// isProbeRunning(file_list[j]);
// pro = file_name + ":" + flat;
pro = file_name;
printf("pro = %s\n",pro.c_str());
heartstr = heartstr + sp + pro;
}
}
// heartstr = heart + sp + gatewaypid + sp + beat;
// heartstr = gate;
printf("heartstr = %s\n",heartstr.c_str());
closedir(dir);//关闭目录指针
return 0;
}