zoukankan      html  css  js  c++  java
  • 用fnmatch函数进行字符通配

    应一些朋友的要求,我把我电脑上的源代码全部张贴到这里。当然稍微做些说明。
    这样有个好处就是我自己可以通过google随时搜索源代码例子,比如我想找udp编程的例子时,我就在google里输入:udp site:zhoulifa.bokee.com搜索,能看到我自己的源代码例子。

    下面这个例子用fnmatch函数进行字符通配,比如匹配*、?等字符。

    /************关于本文档********************************************
    *filename: fnmatch.c
    *purpose: 说明用fnmatch进行字符匹配的方法
    *wrote by: zhoulifa(zhoulifa@163.com) 周立发(
    http://zhoulifa.bokee.com)
    Linux爱好者 Linux知识传播者 SOHO族 开发者 最擅长C语言
    *date time:2008-01-27 20:33 上海大雪天,据说是多年不遇
    *Note: 任何人可以任意复制代码并运用这些文档,当然包括你的商业用途
    * 但请遵循GPL
    *Thanks to:
    * Ubuntu 本程序在Ubuntu 7.10系统上测试完全正常
    * Google.com 我通常通过google搜索发现许多有用的资料
    *Hope:希望越来越多的人贡献自己的力量,为科学技术发展出力
    * 科技站在巨人的肩膀上进步更快!感谢有开源前辈的贡献!

    添加注释: wenhao
    编译方式: gcc fnmatch.c -o fnmatch -Wall
    输入指令: ./fnmatch "*.c" .
    ********************************************************************
    */
    #include <locale.h>
    #include <fnmatch.h>
    #include <stdio.h>
    #include <sys/types.h>
    #include <dirent.h>

    int main(int argc, char *argv[])
    {
    char *pattern;
    DIR *dir;
    struct dirent *entry;
    int ret;

    dir = opendir(argv[2]); //打开argv[2]文件夹
    pattern = argv[1]; //将argv[1]测试条件放在pattern中.

    printf("the str is %s\n",pattern);

    if(dir != NULL)
    {
    while( (entry = readdir(dir)) != NULL)//判断是否将本文件夹内容读完
    {

    ret = fnmatch(pattern, entry->d_name, FNM_PATHNAME|FNM_PERIOD);//匹配成功返回0
    if(ret == 0)
    {
    printf("%s\n", entry->d_name);//成功打印文件名
    }
    else if(ret == FNM_NOMATCH)
    {
    continue; //不成功继续匹配
    }
    else
    {
    printf("error file=%s\n", entry->d_name);
    }
    }
    closedir(dir);//关闭打开的文件夹
    }

    return 0;
    }


    转自:http://zhoulifa.bokee.com/6614603.html

  • 相关阅读:
    Thinkphp+Nginx(PHPstudy)下报的404错误,403错误解决
    浅谈 PHP 与手机 APP 开发(API 接口开发)
    B/S架构与C/S架构的区别
    动态查询:getBy字段名
    Cannot declare class apphomecontrollerCases because the name is already in use
    TP5与TP3.X对比
    SuperSpider——打造功能强大的爬虫利器
    阵列卡,组成的磁盘组就像是一个硬盘,pci-e扩展出sata3.0
    查看Linux系统下Raid信息
    网格计算, 云计算, 集群计算, 分布式计算, 超级计算
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2222742.html
Copyright © 2011-2022 走看看