在网上找到的一个程序
[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(®, pattern, cflags); //如果编译成功返回0,其它返回说明有错误产生
&nb ......
在网上找到的一个程序
[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(®, pattern, cflags); //如果编译成功返回0,其它返回说明有错误产生
&nb ......
—★—培训周期:共950学时 5个月
—★—培训附赠:保证学员人手一机和一套ARM9开发板
—★—培训内容:在项目经理的带领下,通过完成局网的麻将游戏、My ICQ(网络聊天)和发电机在线监控系统,BT下载软件,掌握基于Linux和Windows平台下的C/C++企业级应用的开发技能,掌握大型软件项目过程中所需要的软件技术、设计规范、开发流程、测试流程及技术、质量控制及项目管理。
—★—报名条件:理工科专业本科以上学历、电子、通信和计算机专业专科以上学历(包含在读学生);嵌入式爱好者、ARM开发板用户。 ......
—★—培训周期:共950学时 5个月
—★—培训附赠:保证学员人手一机和一套ARM9开发板
—★—培训内容:在项目经理的带领下,通过完成局网的麻将游戏、My ICQ(网络聊天)和发电机在线监控系统,BT下载软件,掌握基于Linux和Windows平台下的C/C++企业级应用的开发技能,掌握大型软件项目过程中所需要的软件技术、设计规范、开发流程、测试流程及技术、质量控制及项目管理。
—★—报名条件:理工科专业本科以上学历、电子、通信和计算机专业专科以上学历(包含在读学生);嵌入式爱好者、ARM开发板用户。 ......
—★—培训周期:共950学时 5个月
—★—培训附赠:保证学员人手一机和一套ARM9开发板
—★—培训内容:在项目经理的带领下,通过完成局网的麻将游戏、My ICQ(网络聊天)和发电机在线监控系统,BT下载软件,掌握基于Linux和Windows平台下的C/C++企业级应用的开发技能,掌握大型软件项目过程中所需要的软件技术、设计规范、开发流程、测试流程及技术、质量控制及项目管理。
—★—报名条件:理工科专业本科以上学历、电子、通信和计算机专业专科以上学历(包含在读学生);嵌入式爱好者、ARM开发板用户。 ......
实现一个链表,完成链表的插入,查找,删除
typedef struct _FIFO_M{
void *pdata;
struct _FIFO_M *pNext;
}FIFO_M,* pFIFO_M;
typedef struct _FIFO{
pFIFO_M head;
pFIFO_M tail;
pFIFO_M pos;
int mcount;//节点个数
int max_count;//节点最大个数。
}FIFO,* pFIFO;
FIFO g_fifo;
int Fifo_Add(pFIFO mfifo,void * pdata);/*向队列中压入一数据,添加到队列头部*/
int Fifo_Push(pFIFO mfifo,void * pdata);/*向队列中压入一数据,添加到队列尾部*/
void * Fifo_Pull(pFIFO mfifo); /*将队列头部成员出列*/
......
实现一个链表,完成链表的插入,查找,删除
typedef struct _FIFO_M{
void *pdata;
struct _FIFO_M *pNext;
}FIFO_M,* pFIFO_M;
typedef struct _FIFO{
pFIFO_M head;
pFIFO_M tail;
pFIFO_M pos;
int mcount;//节点个数
int max_count;//节点最大个数。
}FIFO,* pFIFO;
FIFO g_fifo;
int Fifo_Add(pFIFO mfifo,void * pdata);/*向队列中压入一数据,添加到队列头部*/
int Fifo_Push(pFIFO mfifo,void * pdata);/*向队列中压入一数据,添加到队列尾部*/
void * Fifo_Pull(pFIFO mfifo); /*将队列头部成员出列*/
......
qt默认的编程语言为C++语言。如果你用qt编译.c文件,会出现找不到C语言的默认头文件等错误(如:stdio.h等)。qt中不支持
extern "C"{}的这种写法,我前几天有一个C程序需要移植到Qt的工程中,本希望直接extern "C"就ok了,但发现qt4居然不支持这种写法。我的程序中用到了好几个linux系统头文件,是向串口发指令之类的程序,程序中用到了互斥锁并创建了一个线程。如果再用qt语言来写一遍的话我会挂掉的,所以没有办法,在网上找了半天,终于找到解决方法。
将.c文件编译为函数库的方式在qt下调用,这种方法貌似行得通,我就开始行动了。
下面的内容讲得比较多,比较全,比较适合初学者,是我在网上down的,给出了原网站的链接,最后给出了一个程序。经过自己整理好归纳如下:
需要说明的是:使用gcc可以将程序编译成动态库或者静态库的形式,它们在程序中的调用的方式也不尽相同,给出的程序中调用的是动态连接库。编译成动态的还是静态的根据自己的需要进行。如果原C程序编译的时候需要gcc的额外选项(如 gcc -lpthread -o hello hello.c)等,建议采用动态的形式。
1.什么是静态连接库,什么是动态链接库
静态链 ......
qt默认的编程语言为C++语言。如果你用qt编译.c文件,会出现找不到C语言的默认头文件等错误(如:stdio.h等)。qt中不支持
extern "C"{}的这种写法,我前几天有一个C程序需要移植到Qt的工程中,本希望直接extern "C"就ok了,但发现qt4居然不支持这种写法。我的程序中用到了好几个linux系统头文件,是向串口发指令之类的程序,程序中用到了互斥锁并创建了一个线程。如果再用qt语言来写一遍的话我会挂掉的,所以没有办法,在网上找了半天,终于找到解决方法。
将.c文件编译为函数库的方式在qt下调用,这种方法貌似行得通,我就开始行动了。
下面的内容讲得比较多,比较全,比较适合初学者,是我在网上down的,给出了原网站的链接,最后给出了一个程序。经过自己整理好归纳如下:
需要说明的是:使用gcc可以将程序编译成动态库或者静态库的形式,它们在程序中的调用的方式也不尽相同,给出的程序中调用的是动态连接库。编译成动态的还是静态的根据自己的需要进行。如果原C程序编译的时候需要gcc的额外选项(如 gcc -lpthread -o hello hello.c)等,建议采用动态的形式。
1.什么是静态连接库,什么是动态链接库
静态链 ......
linux中的Cron命令是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
你也可以将这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start
现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:
1.直接用crontab命令编辑
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u ......
chmod(change mode)
功能说明:变更文件或目录的权限。
语 法:chmod [-cfRv][--help][--version][<权限范围>+/-/=<权限设置...>][文件或目录...] 或 chmod [-cfRv][--help][--version][数字代号][文件或目录...] 或 chmod [-cfRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
补充说明:在UNIX系统家族里,文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分,另有3种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。您可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果您对符号连接修改权限,其改变会作用在被连接的原始文件。权限范围的表示法如下:
u:User,即文件或目录的拥有者。
g:Group,即文件或目录的所属群组。
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
有关权限代号的部分,列表于下:
r:读取权限,数字代号为"4"。  ......