首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
【linux草鞋应用编程系列】_3_ 进程间通信
】的更多相关文章
【linux草鞋应用编程系列】_3_ 进程间通信
一.进程间通信 linux下面提供了多种进程间通信的方法, 管道.信号.信号量.消息队列.共享内存.套接字等.下面我们分别 介绍管道.信号量.消息队列.共享内存. 信号和套接字在后续介绍. 1.管道 管道又分为无名管道.命名管道. 无名管道用于父子进程间通信, 而命名管道则可以用于同一计算机上运行的 两个进程间的通信.管道可以用类似“水管”的原理来理解. 1)无名管道 要在父子进程进程间使用管道进行通信,那么先需要创建管道, 在linux中…
【linux草鞋应用编程系列】_4_ 应用程序多线程
一.应用程序多线程 当一个计算机上具有多个CPU核心的时候,每个CPU核心都可以执行代码,此时如果使用单线程,那么这个线程只能在一个 CPU上运行,那么其他的CPU核心就处于空闲状态,浪费了系统资源:引入多线程可以解决这个问题,可以充分利用系统CPU 的资源: 例如可以:线程2在CPU核心0上运行.线程2在CPU核心2上运行. 又或者,当应用程序需要做一件查找很费时的操作,如果使用单线程,那么应用程序在处理这个“费时操作”的时候,就不能 进行其他的操作,使用户等待操作处理过程,…
【linux草鞋应用编程系列】_1_ 开篇_系统调用IO接口与标准IO接口
最近学习linux系统下的应用编程,参考书籍是那本称为神书的<Unix环境高级编程>,个人感觉神书不是写给草鞋看的,而是 写给大神看的,如果没有一定的基础那么看这本书可能会感到有些头重脚轻的感觉.我自己就是这样,比方说看进程间通信信号量章 节的时候,开始感觉就很迷糊,因此也就想在这里写一些文字,给和我一样的草鞋分享一些自己的学习经历(算不上经验吧). 环境: windows7, VMware 9.0 操作系统版本: RHEL 5.5 内核版本: 2.6.18-194.el5 G…
【linux草鞋应用编程系列】_6_ 重定向和VT100编程
一.文件重定向 我们知道在linux shell 编程的时候,可以使用文件重定向功能,如下所示: [root@localhost pipe]# echo "hello world" hello world //没有进行重定向,在终端显示 [root@localhost pipe]# echo "hello world" > txt //进行重定向,不在终端显示 [root@localhost pipe]# cat txt //查看生成的文件 txt 的…
【linux草鞋应用编程系列】_5_ Linux网络编程
一.网络通信简介 第一部分内容,暂时没法描述,内容实在太多,待后续专门的系列文章. 二.linux网络通信 在linux中继承了Unix下“一切皆文件”的思想, 在linux中要实现网络通信需要创建相关的网络文件:linux中 用相关的系统调用创建相关的网络文件. 1.网络服务器实现(基于TCP/IP) 要实现一个网络服务器,则按照以下步骤完成 (1)创建网络套接字文件 socket( )系统调用用来创建网络套接字.其原型如下: NAME socket - c…
【linux草鞋应用编程系列】_2_ 环境变量和进程控制
一. 环境变量 应用程序在执行的时候,可能需要获取系统的环境变量,从而执行一些相应的操作. 在linux中有两种方法获取环境变量,分述如下. 1.通过main函数的参数获取环境变量 main函数的多种定义方式: int main(void); int main(int argc, char* argv[ ]); int main(int argc, char* argv[ ], char* env[ ] ) 方式1和方式2比较常见,下面介绍一下方式3: 第三…
Linux C++ 网络编程学习系列(1)——端口复用实现
Linux C++ 网络编程学习系列(1)--端口复用实现 源码地址:https://github.com/whuwzp/linuxc/tree/master/portreuse 源码说明: server1.cpp: 监听127.1:6666,功能是将收到的小写转大写 server2.cpp: 监听192.132:6666, 功能是接收数据, 将自己的数据从大写转小写, 把不是自己的数据转发给server1处理(判断方法是头三个字符是不是123) client.cpp: 客户端, 地址在: ht…
《Linux/Unix系统编程手册》读书笔记3
<Linux/Unix系统编程手册>读书笔记 目录 第6章 这章讲进程.虚拟内存和环境变量等. 进程是一个可执行程序的实例.一个程序可以创建很多进程. 进程是由内核定义的抽象实体,内核为此实体分配执行程序所需的系统资源. 从内核的角度来看,进程是由用户内存空间和内核数据结构组成的.程序的代码和代码中的变量存放在用户内存空间,内核数据结构用于维护进程状态信息. 对于每个进程都有一个唯一的进程号(进程ID)(正数),用来标识系统中的某个程序. getpid(),返回调用该函数的进程的进程ID. #…
Linux下的编程实战【转】
一篇比较不错的文章, 降到了 makefile make , gcc编译器,GDB调试器, Linux文件系统,Linux文件API,.C语言库函数(C库函数的文件操作实际上是独立于具体的操作系统平台的),进程控制与进程通信编程 1.Linux进程 Linux进程在内存中包含三部分数据:代码段.堆栈段和数据段.代码段存放了程序的代码.代码段可以为机器中运行同一程序的数个 进程共享.堆栈段存放的是子程序(函数)的返回地址.子程序的参数及程序的局部变量.而数据段则存放程序的全局变量.常数以及动态数…
Linux 高性能服务器编程——多进程编程
问题聚焦: 进程是Linux操作系统环境的基础. 本篇讨论以下几个内容,同时也是面试经常被问到的一些问题: 1 复制进程映像的fork系统调用和替换进程映像的exec系列系统调用 2 僵尸进程 3 进程间通信的方式之一:管道 4 3种System V进程通信方式:信号量,消息队列和共享内存 fork系统调用 定义: #include <sys/types.h> #include <unistd.h> pid_t fork( void…