易截截图软件、单文件、免安装、纯绿色、仅160KB

linux C正则表达式

在网上找到的一个程序
[c]
#include <stdio.h>
#include <sys/types.h>
#include <regex.h>
/* 取子串的函数 */
static char* substr(const char*str,unsigned start, unsigned end)
{
      unsigned n = end - start;
      static char stbuf[256];
      strncpy(stbuf, str + start, n);
      stbuf[n] = 0;
      return stbuf;
}
/* 主程序 */
int main(int argc, char** argv)
{
      char * pattern;
      int x, z, lno = 0, cflags = 0;
      char ebuf[128], lbuf[256];
      regex_t reg;
      regmatch_t pm[10];
      const size_t nmatch = 10;
/* 编译正则表达式*/
      pattern = argv[1]; //获取正则表达式
      z = regcomp(&reg, pattern, cflags); //如果编译成功返回0,其它返回说明有错误产生
      if (z != 0)
      {
             regerror(z, &reg, ebuf, sizeof(ebuf));
             fprintf(stderr, "%s: pattern '%s' \n",ebuf, pattern);
             return 1;
      }
/* 逐行处理输入的数据 */
      while(fgets(lbuf, sizeof(lbuf), stdin))
      {
            ++lno;
//取得读取字符串的长度,并判断字符串结尾字符是否为回车符'\n'。如果是,将结尾字符改为0
            if ((z = strlen(lbuf)) > 0 && lbuf[z-1]== '\n')
                  lbuf[z - 1] = 0;
/* 对每一行应用正则表达式进行匹配 */
           z = regexec(&reg, lbuf, nmatch, pm, 0);
           if (z == REG_NOMATCH) continue;
 &nbs


相关文档:

简单讲解一些linux的小知识吧

现在大家对Q5的讨论已经上升到发行版和桌面环境的程度了……估计坛子里有许多非LINUX玩家可能听得云里雾里吧?我大概讲一些我知道的,比较简单而且实用的小知识,希望能够同学们一点帮助。
按照惯例,首先必须澄清一下Linux的定义。很多同学可能都误以为Linux就是一个操作系统,严格来讲,这是不对的。linux作 ......

Linux块设备驱动(1) 块驱动中相关的结构体及其操作

 
 
1.字符设备与块设备IO操做的区别
1)块设备只能以块为单位接收输入返回输出,而字符设备则以byte为单位.大多数设备是字符设备,他们不需要缓冲并且不以固定块大小进行操作.
2)块设备对于IO请求有对应的缓冲区,所以他们可以选择以什么顺序进行响应.字符设备无须缓冲且被直接读写.
3)字符设备只能被顺序读写, ......

使用Linux Live USB creator创建Live USB


使用Linux Live USB creator创建Live USB
2010-01-24
分类:Programming
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://ralf0131.blogbus.com/logs/56939663.html
很多Linux发行版都有Live CD, 而Live USB则具有比Live CD更加灵活的特点,完全可以替代Live CD,其实就是把镜像文件&ldqu ......

Linux之VI命令详解

vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人,
或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必将畅行无阻、
游刃有余,因为其他几种文本处理器并非UNIX标准配备。说不定别人的Linux机器没安装j ......

SQLite与C结合

SQLite官方网站例子:
#include <stdio.h>
#include <sqlite3.h>
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++){
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
i ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号