随笔分类 -  Linux下C编程

1 2 下一页
antuomake 生成configure的使用
摘要:configure 作为编译配置脚本,有大量选项可供不同编译需求,这些选项直 接作用到最终生成的Makefile文件 问题:automake默认的gcc编译选项为-Wall -O2 -g,怎么改为我们实际需 要的编译选项(如不带优化选项)? 使用如下命令重新执行configure: CFLAGS=" 阅读全文
posted @ 2016-01-29 20:02 后进后退 阅读(464) 评论(0) 推荐(0)
automake使用
摘要:antuomake 流程图: http://blog.csdn.net/houwei544/article/details/8185916 这个教程不错 https://www.ibm.com/developerworks/cn/linux/l-makefile/使用antuomake工具方法: 以 阅读全文
posted @ 2016-01-29 18:27 后进后退 阅读(1310) 评论(0) 推荐(0)
消息队列,信号量
摘要: 阅读全文
posted @ 2015-04-10 08:59 后进后退 阅读(137) 评论(0) 推荐(0)
设备驱动
摘要:字符设备字符设备是一种按字节来访问的设备,字符驱动则负责驱动字符设备,这样的驱动通常实现 open, close,read和 write 系统调用。块设备在大部分的 Unix 系统, 块设备不能按字节处理数据,只能一次传送一个或多个长度是512字节( 或一个更大的 2 次幂的数 )的整块数据。而Li... 阅读全文
posted @ 2015-04-08 16:42 后进后退 阅读(422) 评论(0) 推荐(0)
linux驱动(一)
摘要:编写模块必须先声明下面两句:#include //这个头文件包含了许多符号与函数的定义,这些符号与函数多与加载模块有关#include //这个头文件包含了你的模块初始化与清除的函数另外,如果你的模块需要用到参数传递,那么你可能就要声明moduleparam.h... 阅读全文
posted @ 2015-04-03 11:01 后进后退 阅读(175) 评论(0) 推荐(0)
线程同步
摘要:原子操作互斥mutex相互排斥的意思,它是一种锁或者信号灯。互斥用来保护多个线程共享的数据和结构,不会被同时修改,一个互斥锁只能有两种状态:locked 枷锁unlocked 解锁加锁后互斥不让其他线程访问。任何时刻只能有一个线程来掌握某个互斥上锁。一个线程如果试图在一个已经加锁的互斥上再加锁,这个... 阅读全文
posted @ 2015-03-27 22:35 后进后退 阅读(144) 评论(0) 推荐(0)
线程
摘要:堆栈 线程包含线程ID,寄存器的值栈。堆属于整个进程, 栈属于线程级别的。一个进程可能出现多个栈,线程之间的栈是独立的,但是可以互相访问的。调度优先级,等属于线程的。errno属于线程的,在线程栈中CPU同一时间只能执行一条指令。进程内所有的信息对于线程都是共享的,包括执行代码,全局变量,和堆内存,... 阅读全文
posted @ 2015-03-21 23:46 后进后退 阅读(144) 评论(0) 推荐(0)
僵死进程,与孤儿进程
摘要:僵死进程: 父进程没有wait();子就退出了。孤儿进程: 父亲退出,子进程还没有结束,托孤给init进程。 阅读全文
posted @ 2015-03-21 23:13 后进后退 阅读(121) 评论(0) 推荐(0)
守护进程
只有注册用户登录后才能阅读该文。
posted @ 2015-03-19 14:15 后进后退
linux-信号。
摘要:信号信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事... 阅读全文
posted @ 2015-03-17 16:49 后进后退 阅读(348) 评论(0) 推荐(0)
进程间通信--共享内存
摘要:共享内存是LUNIX 系统中最底层的通信机制,也是最快速的通信机制。共享内存是由内核出于在多个进程间交换信息目的而留出的一块内存区(段)。如果段的权限设置恰当,每个要访问段内存的进程都可以把它映射到自己的私有空间中,如果一个进程更新了段中的数据,另外的进程也可以看的到,一个进程创建的段,其他进程也可... 阅读全文
posted @ 2015-03-17 13:31 后进后退 阅读(430) 评论(0) 推荐(0)
linux进程间通信--有名管道
摘要:有名管道只有当一个库函数失败时,errno才会被设置。当函数成功运行时,errno的值不会被修改。这意味着我们不能通过测试errno的值来判断是否有错误存在。反之,只有当被调用的函数提示有错误发生时检查errno的值才有意义。查看错误代码errno是调试程序的一个重要方法。当linux C api函... 阅读全文
posted @ 2015-03-17 11:41 后进后退 阅读(292) 评论(0) 推荐(0)
如何实现.so共享库文件
摘要:.so共享库相当于window中的.DLL文件两个进程同时调用了.so文件,进程就会加载的.so文件到各自的内存空间,而不能实现进程间通讯。.so文件编译的方法:-so文件不需要main文件,即使有也不会被执行。-编译gcc时候需要加-fPIC选项,可以产生与位置无关的代码。(首地址,偏移地址)-链... 阅读全文
posted @ 2015-03-16 13:40 后进后退 阅读(519) 评论(0) 推荐(0)
内核转储的设置方法
摘要:关于内核转储的设置方法1. 内核转储作用(1) 内核转储的最大好处是能够保存问题发生时的状态。(2) 只要有可执行文件和内核转储,就可以知道进程当时的状态。(3) 只要获取内核转储,那么即使没有复现环境,也能调试。2. 启用内核转储1.1 查看内核转储是否有效在终端中输入以下命令,查看内核转储是否有... 阅读全文
posted @ 2015-03-16 13:16 后进后退 阅读(916) 评论(0) 推荐(0)
fork();
摘要:僵死进程: 父进程没有等待子进程,wait() 子进程会变成僵死进程。int main(int arg, char *args[]){ pid_t pid = fork();//调用fork产生一个子进行 int status; if (pid == -1) { printf("fork... 阅读全文
posted @ 2015-03-16 11:46 后进后退 阅读(457) 评论(0) 推荐(0)
char *s = getpass()屏幕不回显示 ,返回输入的字符
摘要:char *s = getpass(“please input you name:”)屏幕不回显示 ,返回输入的字符 阅读全文
posted @ 2015-03-11 10:44 后进后退 阅读(151) 评论(0) 推荐(0)
fstat().stat()函数
摘要:int stat(const char *path, struct stat *buf);int fstat(int fd, struct stat *buf);唯一不同是参数不同,其他一样。文件的一些属性参数:struct stat{ dev_t st_dev; /* ID of device... 阅读全文
posted @ 2015-03-10 17:29 后进后退 阅读(837) 评论(0) 推荐(0)
write() ,read();
摘要:int main1(int argc ,char *argv[]){ if(argc 0)//文件大的时候由于buf太小每次只读buf大小, sizeof(buf)-1表示每次不把buff读满留一个作为结尾防止最后一个字节乱码 { printf("... 阅读全文
posted @ 2015-03-10 17:10 后进后退 阅读(346) 评论(0) 推荐(0)
gdb调试
摘要:启动gdb 程序名 [corefile]corefile 是可选的,能增强gdb的调试能力。linux默认不生成corefile的。所以需要在.bashrc文件中添加ulimit -c unlimitedsh .bashrc 生效脚本gdb -q 程序名 core.xxxxrun命令where命令l... 阅读全文
posted @ 2015-03-09 22:24 后进后退 阅读(1299) 评论(0) 推荐(0)
open()函数
摘要:STDOUT_FILENO 1标准输入STDIN_FILENO 0标准输出STDERR_FILENO 2标准错误在/proc目录下的进程文件中,有一个fd的目录记录每打开一个文件里面会有一个文件标示文件,名称以数字开始0 ,1,2....最大好像是65535包括标准输入... 阅读全文
posted @ 2015-03-09 14:13 后进后退 阅读(2432) 评论(0) 推荐(0)

1 2 下一页