一、遍历一个文件夹的所有文件代码

代码语言:javascript复制int listallfilename(const char* path)

{

DIR *dir;

struct dirent *ptr;

dir = opendir(path);

while((ptr = readdir(dir)) != NULL)

{

printf("path=%s,d_name: %s\n",path,ptr->d_name);

}

closedir(dir);

return 0;

}二、函数strstri不区分大小写查找字符串c代码

代码语言:javascript复制char* strstri(char * inBuffer, char * inSearchStr)

{

char* currBuffPointer = inBuffer;

while (*currBuffPointer != 0x00)

{

char* compareOne = currBuffPointer;

char* compareTwo = inSearchStr;

//统一转换为小写字符

while (tolower(*compareOne) == tolower(*compareTwo))

{

compareOne++;

compareTwo++;

if (*compareTwo == 0x00)

{

return (char*) currBuffPointer;

}

}

currBuffPointer++;

}

return NULL;

}三、实际应用测试程序

代码语言:javascript复制#include

#include

#include

#include

#include

struct rk3288_display_devices

{

bool hdmi;

bool lvds;

bool mipi;

bool edp;

};

struct rk3288_display_devices m_display_devices={0,0,0,0};

char* strstri( char* inBuffer, const char* inSearchStr)

{

const char* currBuffPointer = inBuffer;

while (*currBuffPointer != 0x00)

{

const char* compareOne = currBuffPointer;

const char* compareTwo = inSearchStr;

while (tolower(*compareOne) == tolower(*compareTwo))

{

compareOne++;

compareTwo++;

if (*compareTwo == 0x00)

{

return (char*) currBuffPointer;

}

}

currBuffPointer++;

}

return NULL;

}

int check_rk3288_drm_display_devices(const char* path)

{

DIR *dir;

struct dirent *ptr;

dir = opendir(path);

while((ptr = readdir(dir)) != NULL)

{

printf("path=%s,d_name: %s\n",path,ptr->d_name);

if(strstri(ptr->d_name,"hdmi"))

{

m_display_devices.hdmi=true;

printf("hdmi \r\n");

}else if(strstri(ptr->d_name,"mipi"))

{

m_display_devices.mipi=true;

printf("mipi \r\n");

}else if(strstri(ptr->d_name,"lvds"))

{

m_display_devices.lvds=true;

printf("lvds \r\n");

}

else if(strstri(ptr->d_name,"edp"))

{

m_display_devices.edp=true;

printf("edp \r\n");

}

}

closedir(dir);

return 0;

}

int main(){

check_rk3288_drm_display_devices("/sys/class/drm/");

return 0;

}四、android机子运行结果

xxx:/ # test_c

path=/sys/class/drm/,d_name: .

path=/sys/class/drm/,d_name: ..

path=/sys/class/drm/,d_name: card0-HDMI-A-1

hdmi

path=/sys/class/drm/,d_name: card0

path=/sys/class/drm/,d_name: renderD128

path=/sys/class/drm/,d_name: card0-LVDS-1

lvds

path=/sys/class/drm/,d_name: controlD64

path=/sys/class/drm/,d_name: version

xxx:/ # ls -a /sys/class/drm/

. .. card0 card0-HDMI-A-1 card0-LVDS-1 controlD64 renderD128 version

xxx:/ #