linux
文章平均质量分 84
zccracker
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言中system和exec的本质区别
system是用shell来调用程序=fork+exec+waitpid.而exec是直接让你的程序代替用来的程序运行 system 是在单独的进程中执行命令,完了还会回到你的程序中。 而exec函数是直接在你的进程中执行新的程序,新的程序会把你的程序覆盖,除非调用出错,否则你再也回不到exec后面的代码,就是说你的程序就变成了exec调用的那个程序了. 看一转载 2014-05-06 15:17:13 · 1401 阅读 · 0 评论 -
Linux下同步模式、异步模式、阻塞调用、非阻塞调用
同步和异步:与消息的通知机制有关。 本质区别 现实例子 同步模式 由处理消息者自己去等待消息是否被触发 我去银行办理业务,选择排队等,排到头了就办理。 异步模式 由触发机制来通知处理消息者 我去银行办理业务,取一个小纸条上面有我的号码,等到排到我这一号时由柜台的人通知我轮到我去办理转载 2014-10-08 15:35:12 · 429 阅读 · 0 评论 -
Linux相关
1、gcc 对比 g++ 2、静态库 ar rc 命令 3、gcc 参数 -o -c -g -D -I -l -L -i 4、gdb参数 l,p,n,set args原创 2015-01-22 15:52:48 · 314 阅读 · 0 评论 -
Makefile相关
七、静态模式 静态模式可以更加容易地定义多目标的规则,可以让我们的规则变得更加的有弹性和灵活。我们还是先来看一下语法: ;: ;: ; ; ... targets定义了一系列的目标文件,可以有通配符。是目标的一个集合。 target-parrtern是指明了targets的模式,也就是的目标集模式。 pr原创 2015-01-28 14:45:05 · 380 阅读 · 0 评论 -
g++参数介绍
[介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件 预处理器cpp 2.将预处理后的文件不转换成汇编语言,生成文件.s 编译器egcs 3.有汇编变为目标代码(机器代码)生成.o的文件 汇编器as 4.连接目标代码,生成可执行程序转载 2015-01-22 16:04:44 · 413 阅读 · 0 评论 -
静态库和动态库创建过程
libtest/include/hello.h #ifdef _HELLO_H_ #define _HELLO_H_ void hello(); #endif libtest/lib/hello.c #include "hello.h" #include void hello() { printf("hello world!\n"); } libtest/sr转载 2015-01-22 16:06:32 · 477 阅读 · 0 评论 -
关于gcc心得
1、如果h头文件中有实现代码,那么不需要进行gcc编译操作。 2、h头文件中有实现代码(A.h)时,include它的cpp(B.cpp)如果进行gcc -c 操作时,生成的o文件中会包含A.h中的实现代码。 3、如果A.h中有实现代码,如果B.cpp 包含A.h ,同时C.cpp包含A.h。如果将B.cpp和C.cpp链接到一起,将会有符合多次定义错误。 原因是生成的B.o中有A.h的实现原创 2015-01-23 10:50:09 · 538 阅读 · 0 评论 -
tcp Keepalive
TCP协议中有长连接和短连接之分。短连接在数据包发送完成后就会自己断开,长连接在发包完毕后,会在一定的时间内保持连接,即我们通常所说的Keepalive(存活定时器)功能。 默认的Keepalive超时需要7,200,000 milliseconds,即2小时,探测次数为5次。它的功效和用户自己实现的心跳机制是一样的。开启Keepalive功能需要消耗额外的宽带和流量,尽管这微不足道,但在按流量转载 2015-06-01 11:31:39 · 655 阅读 · 0 评论 -
线程的join 和detach状态
在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我们采用了线程的默认属性转载 2015-06-25 17:36:51 · 675 阅读 · 0 评论 -
linux定时器总结
1 参考资料 Ø http://www.ibm.com/developerworks/cn/linux/1307_liuming_linuxtime1/ Ø 《linux系统编程》第“10.9 定时器”章节 2 概要 要在linux中使用定时器,有如下三种方法: 定时器方式 一个进程允许 使用的数量 通知方转载 2016-03-02 16:45:47 · 610 阅读 · 0 评论 -
Linux下的五种I/O模型
Linux下的五种I/O模型 1)阻塞I/O(blocking I/O) 2)非阻塞I/O (nonblocking I/O) 3) I/O复用(select 和poll) (I/O multiplexing) 4)信号驱动I/O (signal driven I/O (SIGIO)) 5)异步I/O (asynchronous I/O (the POSIX aio_fu转载 2014-10-08 15:26:42 · 651 阅读 · 0 评论 -
关于 多进程epoll 与 “惊群”问题
【遇到问题】 手头原来有一个单进程的linux epoll服务器程序,近来希望将它改写成多进程版本,主要原因有: 在服务高峰期间 并发的 网络请求非常海量,目前的单进程版本的程序有点吃不消:单进程时只有一个循环先后处理epoll_wait()到的事件,使得某些不幸排队靠后的socket fd的网络事件处理不及时(担心有些socket客户端等不耐烦而超时断开);希望充分利用到服务转载 2014-09-02 10:50:33 · 347 阅读 · 0 评论 -
fork的问题
题目:请问下面的程序一共输出多少个“-”? ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include #include #include int main(vo转载 2014-08-28 14:44:32 · 389 阅读 · 0 评论 -
如何将 Linux 内核实现的红黑树 rbtree 运用到你的 C 程序中?
如何将 Linux 内核实现的红黑树 rbtree 运用到你的 C 程序中? 2012-09-02 23:48 by Haippy, 1937 阅读, 3 评论, 收藏, 编辑 相信大家都知道红黑树是什么吧,但是呢......如果你确实不知道,你不该穿越到这儿的,你应该去这里,这里,还有这里看看,然后再来这里看看,最后如果大爷您赏脸,再来看看我吧 :-) 废话少说,直接入正题转载 2014-05-07 17:50:31 · 619 阅读 · 0 评论 -
linux下查看进程内存使用情况
动态查看一个进程的内存使用 1、top命令 top -d 1 -p pid [,pid ...] //设置为delay 1s,默认是delay 3s 如果想根据内存使用量进行排序,可以shift + m(Sort by memory usage) 静态查看一个进程的内存使用 [c-s转载 2014-05-13 10:18:40 · 414 阅读 · 0 评论 -
异步回收fork出的子进程(僵尸进程)
什么是僵尸进程 一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被 僵尸进程销毁, 而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是 使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁) 僵尸进程是怎么样产生 在Linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,没有转载 2014-06-03 11:20:36 · 841 阅读 · 0 评论 -
fork两次解决僵尸进程
孤儿进程 孤儿进程是指父进程在子进程结束之前死亡(return 或exit)。如下图1所示: 图1 孤儿进程 但是孤儿进程并不会像上面画的那样持续很长时间,当系统发现孤儿进程时,init进程就收养孤儿进程,成为它的父亲,child进程exit后的资源回收就都由init进程来完成。 僵尸进程 僵尸进程是指子进程在父进转载 2014-06-03 17:29:50 · 1912 阅读 · 0 评论 -
Linux下递归创建目录
int CreateDir(const char *sPathName) { char DirName[256]; strcpy(DirName, sPathName); int i,len = strlen(DirName); if(DirName[len-1]!='/') strcat(Dir转载 2014-05-29 17:48:19 · 2142 阅读 · 0 评论 -
关于epoll的ET模式
epoll的两种模式LT和ET 二者的差异在于level-trigger模式下只要某个socket处于readable/writable状态,无论什么时候进行epoll_wait都会返回该socket;而edge-trigger模式下只有某个socket从unreadable变为readable或从unwritable变为writable时,epoll_wait才会返回该socket。原创 2014-08-19 17:57:37 · 622 阅读 · 0 评论 -
reactor和proactor模式(epoll和iocp)
首先分享一下,我在网上看到的两篇不错的文章:正是这两篇文章才理解了reactor和proactor模式; Reactor模式,或者叫反应器模式 高性能IO设计的Reactor和Proactor模式 首先就第一篇《Reactor模式,或者叫反应器模式》做一下笔记: 刚开店做生意,老板为了给顾客一个美好的印象,给顾客最好的服务,一对一: 随转载 2014-08-19 18:55:52 · 5256 阅读 · 0 评论 -
timerfd
NAME timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via file descriptors SYNOPSIS #include int timerfd_create(int clockid, int flags);原创 2014-08-26 10:09:55 · 552 阅读 · 0 评论 -
signalfd
NAME signalfd - create a file descriptor for accepting signals SYNOPSIS #include int signalfd(int fd, const sigset_t *mask, int flags); DESCRIPTION signa原创 2014-08-27 11:22:18 · 1066 阅读 · 0 评论 -
移植samba到安卓
一、交叉编译环境 1、安装arm-linux-gcc编译工具 2、安装步骤 1、将压缩包arm-linux-gcc-4.4.3.tar.gz存放在一个目录下。 2、使用tar命令:tar zxvf arm-gcc-4.4.3.tar.gz将software文件夹下的arm-linux-gcc-4.4.3.tar.gz解压缩 3、接下来配置系统环境变量,把交叉编译工具链的路径添原创 2016-05-19 18:06:06 · 2915 阅读 · 0 评论
分享