摘要:引言生產者消費者是一個經典的模式利用生產者,消費者和緩衝區降低了生產者和消費者之間的的耦合度便於對生產者和消費者的修改下面記錄的是一個經典的單一生產者多消費者的模式設計思路以隊列做為緩衝區,實現產品的FIFO生產者調用緩衝區的push函數,將產品加入緩衝區消費者調用緩衝區的pop函數,將產品從緩衝區...
阅读全文
随笔分类 - Linux
摘要:一、进程的创建fork()函数由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是 新子进程的进程ID。将子进程ID返回给父进程的理由是:因为一个进程的子进程可以多于一个,所有没有一个函数使一个进程可...
阅读全文
摘要:一、进程的定义 进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。二、进程与程序的区别 程序时静态的,它是一些保存 在磁盘上得指令的有序集合,没有任何执行的概念。 进程是一个动态的概念,...
阅读全文
摘要:linux进程编程:子进程创建及执行函数简介 子进程创建及执行函数有三个:(1)fork();(2)exec();(3)system(); 下面分别做详细介绍。(1)fork() 函数定义: pid_t fork(); 函数说明: linux下进程在内存中由三部分数据组成:代码段、数据段、堆栈段。在...
阅读全文
摘要:(1)fork()的定义fork()函数是Unix中派生新进程的唯一方法,声明如下:[cpp]view plaincopy#includepid_tfork(void);我们需要理解的是,调用一次fork()方法,该方法会返回两次。一次是在调用进程(也就是派生出的子进程的父进程)中返回一次,返回值是...
阅读全文
摘要:int status;pid_t t = fork();if(t){waitpid(t, &status, 0);}else{system("vi temp.txt");exit(0);}//父进程和子进程均执行完毕后继续执行下去分析过程:if和else还是选择分支。主要的原因是,fork()函数调...
阅读全文
摘要:在windows下创建子进程较常用到的API就是CreateProcess,可以通过以下的方式启动一个新进程: STARTUPINFO si = {0}; PROCESS_INFORMATION pi = {0}; si.cb = sizeof(STARTUPINFO); //结构体大小 Ge...
阅读全文
摘要:大家知道Linux中创建子进程的一个很好的方法是函数调用fork,但是很多初学者对fork的理解上可能有点困难。我们举个例子来看看fork的用法吧。 大家用fork的时候记住fork是“分叉”的意思就很好理解了。 记得初学fork() 函数及遇到这个函数时,总是不能理解fork为什么会这样写,就会分...
阅读全文
摘要:[cpp]view plaincopy#ifdefWIN32#include#else#include#include#endif#includestd::stringgetCurrentAppPath(){#ifdefWIN32charpath[MAX_PATH+1]={0};if(GetModu...
阅读全文
摘要:linux下gdb单步调试用 GDB 调试程序GDB 概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能...
阅读全文
摘要:用gdb调试程序笔记: 以段错误(Segmental fault)为例[转]1.背景介绍2.程序中常见的bug分类3.程序调试器(如gdb)有什么用4.段错误(Segmental fault)介绍5.gdb调试入门一、背景介绍这个笔记主要介绍开源的程序调试器(gdb)的入门知识,目的是使unix/l...
阅读全文
摘要:如何保证服务一直运行?如何保证即使服务挂掉了也能自动重启?在写服务程序时经常会碰到这样的问题。在Linux系统中,强大的shell就可以很灵活的处理这样的事务。 下面的shell通过一个while-do循环,用ps -ef|grep 检查loader进程是否正在运行,如果没有运行,则启动,这样就保...
阅读全文
摘要:Linux中service命令和/etc/init.d/的关系service xxx启动 /etc/init.d/ 目录下的xxx脚本如一个脚本名为 mysvc保存在/etc/init.d/下可以用 service mysvc 运行mysvc脚本echo passed in option $0 $1...
阅读全文
摘要:Linux中,脚本语言环境中,即你用make xxx即其他一些普通linux命令,比如ls,find等,不同的数字,代表不同的含义:数字含义 标准叫法0 标准输入 stdin = standard input1 标准输出 stdout = standard output2 标准错误输出 stderr...
阅读全文
摘要:sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口)给信号signum设置新的信号处理函数act, 同时保留该信号原有的信号处理函数olda...
阅读全文
摘要:这篇文章主要介绍了shell脚本中常见的一些特殊符号和它的作用详解,总结的很简洁,容易看懂,需要的朋友可以参考下在编写Shell脚本时,我们需要会用到各种各样的特殊符号,通过这些特殊符号可以使我们编写的代码更加简洁和高效,这里给大家汇总下:1、{} 大括号:用法一:通配符扩展eg: ls my_{f...
阅读全文
摘要:为避免以下某个软件安装时不自动安装 build-essential 不妨先执行:sudo apt-get install build-essential[编辑]anjutaAnjuta DevStudio 的官方地址:http://anjuta.sourceforge.net/Anjuta是一个C/...
阅读全文
摘要:gdb除了命令行方式等的调试之外,还有图形化的调试工具,下面列举一些供参考1:insight2: ddd3: kgdb4: xxgdb其它的工具欢迎补充
阅读全文
摘要:目 录引言 1一、安装和登录 2(一) login 2(二) shutdown 2(三) halt 3(四) reboot 3(五) install 4(六) mount 4(七) umount 6(八) chsh 6(九) exit 7(十) last 7(十一) 动手练习 7二、文件处理 9(一...
阅读全文
摘要:Xwindows:gnome (红帽默认安装的图形界面)一, 确认及安装VNCSERVER。1,首先确认你服务器是否配置了VNCSERVER,可以在命令行下敲入以下命令查看:[root@localhost: ~]#rpm -qa |grep vncvnc-server-4.1.2-14.el5_3....
阅读全文