Linux C学习
文章平均质量分 66
bg2bkk
操作系统,本质上仍是体系结构
展开
-
《Unix环境高级编程》(APUE)附带源码编译过程
在UBUNTU下进行APUE的代码编译的话,需要改动的地方很多,尤其是ubuntu12.04下,内核升级到3.0后。一 首先进行一些改动,将工作区间改变,修改MAKE文件以为编译打基础http://blog.csdn.net/dycwahaha/article/details/2300938(一)作者提供的编译方法的实现 README文件中给出的编译方法如下: T原创 2012-08-24 18:59:30 · 2821 阅读 · 1 评论 -
我觉得epoll和select最大的区别
最近在用epoll,网速资料很多,大家都说epoll和select的区别比较大,而且select要不停遍历所有的fd,效率要低,而且fd有限制。但是我认为二者最大的区别在于先看代码 while (1) {nfds = epoll_wait(epfd, events, 20, 50000);cout if(nfds == -1){perror("e原创 2013-10-15 20:54:40 · 1598 阅读 · 0 评论 -
linux下判断路径是否存在(文件夹是否存在)
#include#include#include#include#includeusing namespace std;int main(void){ char buff[] = "/home/whc/test2/"; //1 opendir() and closedir DIR *dir=NULL; dir = opendir(buff); if(NULL == dir转载 2013-12-11 16:41:30 · 2942 阅读 · 0 评论 -
近期重点要巩固的几个知识点,标准输入输出,文件打开关闭,socket与epoll相关
有感于最近开发中遇到的基础性问题,在很多基础问题上犯错,感觉很不应该。基础不牢,地动山摇。比如python通过subprocess调用一个cpp程序,竟然由于cpp程序的标准输出没有及时读出,导致程序卡住,这个问题我竟然没有意识到,需要弄明白这些东西原创 2014-01-07 15:04:23 · 1107 阅读 · 1 评论 -
Linux CPP程序的三种实现定时任务的方法
我的定时任务中的 iostream等会core down,很苦恼。今天发现我的定时任务里cout竟然挂掉了,然后socket的write和read会被阻塞了,好奇怪的事情,redis也阻塞着。然后师傅看了我的程序,认为我的定时任务是使用sigalarm定时,然后在信号中断里做业务,而我的业务太多了,一般他们不在中断中做太多业务,怀疑我的cout、fout或者redisCommand的上下文原创 2014-03-13 14:58:09 · 2061 阅读 · 2 评论 -
从系统调用fork,到进程的创建与终止
最近好长时间没有更新博客,终极原因还是懒。原创 2014-07-02 20:38:59 · 3918 阅读 · 1 评论 -
leetcode中,代码如何调试,创造本地运行环境
初次接触leetcode,是我在一个招聘网站上看的,这个OJ真有那么厉害吗?这几天在这个OJ上做了几道题,发现他的几个特点,1、题目不难(相对于ACM来说,我被ACM虐到至今无力),评判没那么苛刻,2、十分基础,从链表、树到动态规划等,都是非常基本非常经典的内容,相当的靠基本功,3、没有本地调试环境,直接在网站上提交,后台评判系统帮你完成程序输入、评判输出的功能,4、国内外业内认可,有很多人都原创 2014-07-08 21:06:46 · 28806 阅读 · 3 评论 -
c/cpp中如何分割字符串,类似于split的功能
C标准库中strtok的使用相关适宜,有关于strtok的非线程安全特质,以及strtok的替代函数strsep的用法原创 2014-07-08 19:56:09 · 13800 阅读 · 2 评论 -
异步通知读取文件操作符的小例子
转自:http://www.verydemo.com/demo_c441_i188495.html#include #include #include #include #include #include #define MAX_LEN 100void input_handler(int num){ char data[MAX_LEN]; int len; //读取并转载 2014-07-28 21:50:11 · 956 阅读 · 0 评论 -
Makefile编译目录下多个文件
今天终于学会了编写makefile,使之可以编译目录下所有c\cpp文件。编译多个c文件一般有两个功能,一个是每个c文件都有main函数,就是说每个c文件的可执行文件是独立的,各自是各自的;第二个是多个c文件用来编译成一个可执行文件。首先说第一个,内容如下,这个makefile是为了编译opencv代码的。CFLAGS= -g -O3 `pkg-config opencv --原创 2013-06-28 21:31:33 · 25083 阅读 · 2 评论 -
应用dranger教程使用ffmpeg库从视频中读取图片的示例程序
声明:版权归dranger大神,参考地址为:http://dranger.com/ffmpeg/tutorial01.html, 我只是将教程中不适合0.7版本ffmpeg的api的代码改为可在0.7版本ffmpeg下编译运行的程序,编译环境为:centos 5.9, ffmpeg版本:0.7.15, x264版本:20110627代码如下:// tutorial01.c//原创 2013-06-07 23:04:26 · 2667 阅读 · 0 评论 -
OpenCV2.4.5在13-04的配置过程
OpenCV 2.4.5编译安装方法需要x264,ffmpeg和opencv2.4.5x264下载地址:ftp://ftp.videolan.org/pub/x264/snapshots/ffmpeg下载地址:http://www.ffmpeg.org/download.htmlopencv下载地址:http://opencv.org/我们使用最新的Ub原创 2013-06-07 16:07:50 · 5074 阅读 · 1 评论 -
APUE 第八章 进程管理 子进程领养问题探讨
终于开始学习APUE的进程管理这章了,其实看书到现在终于发现,我们读一本书,并且确定这本书是好书,然后认真读这本书。但是当前我们已经没有太多时间去逐句逐字读,所以需要我们有所甄别。可以只看自己感兴趣的地方,比如我对进程管理这部分感兴趣,所以可以直接去看进程管理这章,而不用去看文件或者IO。 下述程序为fork的使用示例。Program List 8-1#include "原创 2012-10-09 18:41:11 · 1360 阅读 · 1 评论 -
ubuntu下的字典,使用有道词典
ubuntu下的字典实在不知道咋整,不会弄stardict,看到sourceforge上有python写的有道词典的脚本,只要联网,就可以在终端查询,用了之后,感觉很方便,所以推荐给大家。可以从http://sourceforge.net/projects/yodao-free/files/yodao-dict/这个站点下载,就一个python脚本,下载下来就可以。若是不想下载,就复制下述代码,以原创 2012-10-09 19:46:14 · 11610 阅读 · 3 评论 -
Linus的最新愤怒,这哥们真心触碰到了Linus的底线
Mauro, SHUT THE FUCK UP!闭上你的嘴It's a bug alright - in the kernel. How long have you been amaintainer? And you *still* haven't learnt the first rule of kernelmaintenance?这是已经是一个内核的bug。你做maintainer多原创 2012-12-26 16:18:34 · 1898 阅读 · 1 评论 -
Linux串口编程
之前一直在纠结这个怎么做,其实就是一个读写文件的流程,需要配置下串口的参数。不过有意思的地方更在于,一,串口是可以作为终端的,linux终端tty是很有意思的,二,串口的配置涉及缓冲区设计,这点又和C语言的缓冲区息息相关,很多公司也喜欢考这样的C语言问题。参考文献为:http://www.ibm.com/developerworks/cn/linux/l-serials/index.htm原创 2013-02-28 21:25:53 · 5477 阅读 · 14 评论 -
Linux系统串口接收数据编程
之前基于IBM deveplopworks社区的代码,做了串口初始化和发送的程序,今天在此基础上添加了读取串口数据的程序。首先是最简单的循环读取程序,第二个是通过软中断方式,使用信号signal机制读取串口,这里需要注意的是硬件中断是设备驱动层级的,而读写串口是用户级行为,只能通过信号机制模拟中断,信号机制的发生和处理其实于硬件中断无异,第三个是通过select系统调用,在没有数据时阻塞进程,串口原创 2013-03-13 15:07:53 · 28528 阅读 · 7 评论 -
V4L2通过摄像头采集图片
V4L2通过摄像头采集图片#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2013-05-19 11:48:58 · 13267 阅读 · 20 评论 -
应用FFMPEG和SDL,播放视频文件
使用FFMPEG库进行视频编解码,使用SDL播放视频,代码参考dranger大神的代码。extern "C" {#include "libavformat/avformat.h" #include "libswscale/swscale.h" }#include #include #include #include #include #ifdef原创 2013-06-08 16:21:11 · 2269 阅读 · 0 评论 -
x264和FFMPEG 编译后遇到的一些问题:UINT64_C,
吭吃坑吃的编译安装完ffmpeg 0.75,在centos5.9上后,遇到了一些问题,都是十分常见的问题,希望对大家有用。问题一/usr/local/include/libavutil/common.h: In function ‘int32_t av_clipl_int32_c(int64_t)’:/usr/local/include/libavutil/common.h:170:原创 2013-06-07 16:06:54 · 11427 阅读 · 1 评论 -
服务器后台程序的内存使用问题
目前我开发的一个服务器后台程序存在这么一个问题,由于我的程序要不断的收发消息,并做统计,统计用的是stl的多重map,在统计中会不断的往map里赛数据。但是每次统计后我都会调用clear()去释放内存,但是似乎并不奏效,仍然会有泄漏的现象。查资料,map的clear是将map内容清空,但是内存并不归还给系统,而是缓冲在内存池里以方便下次调用,有人提出,可以新建一个map,将两个map做swap操作原创 2014-07-14 01:07:25 · 4313 阅读 · 2 评论