摘要:一、文件重定向 我们知道在linux shell 编程的时候,可以使用文件重定向功能,如下所示:[root@localhost pipe]# echo "hello world" hello world //没有进行重定向,在终端显示[root@localhost pipe]# echo "hello world" > txt //进行重定向,不在终端显示[root@localhost pipe]# cat txt //查看生成的文件 txt 的内容hello world[root@localhost pipe]...
阅读全文
随笔分类 - Linux_C_program
Linux的应用编程
摘要:一、网络通信简介 第一部分内容,暂时没法描述,内容实在太多,待后续专门的系列文章。二、linux网络通信 在linux中继承了Unix下“一切皆文件”的思想, 在linux中要实现网络通信需要创建相关的网络文件;linux中用相关的系统调用创建相关的网络文件。1、网络服务器实现(基于TCP/IP) 要实现一个网络服务器,则按照以下步骤完成(1)创建网络套接字文件 socket( )系统调用用来创建网络套接字。其原型如下:NAME socket - create an endpoint for communication //功能: 用来创建一个终端的链接SYNOPSIS...
阅读全文
摘要:一、应用程序多线程 当一个计算机上具有多个CPU核心的时候,每个CPU核心都可以执行代码,此时如果使用单线程,那么这个线程只能在一个CPU上运行,那么其他的CPU核心就处于空闲状态,浪费了系统资源;引入多线程可以解决这个问题,可以充分利用系统CPU的资源; 例如可以:线程2在CPU核心0上运行、线程2在CPU核心2上运行。 又或者,当应用程序需要做一件查找很费时的操作,如果使用单线程,那么应用程序在处理这个“费时操作”的时候,就不能进行其他的操作,使用户等待操作处理过程,影响应用程序的实时性;利用多线程可以解决这个问题,应用程序可以让费时操作在一个线程中执行,而其他线程还可以处理其他任务,..
阅读全文
摘要:一、进程间通信 linux下面提供了多种进程间通信的方法, 管道、信号、信号量、消息队列、共享内存、套接字等。下面我们分别介绍管道、信号量、消息队列、共享内存。 信号和套接字在后续介绍。1、管道 管道又分为无名管道、命名管道。 无名管道用于父子进程间通信, 而命名管道则可以用于同一计算机上运行的两个进程间的通信。管道可以用类似“水管”的原理来理解。1)无名管道 要在父子进程进程间使用管道进行通信,那么先需要创建管道, 在linux中使用 pipe()创建管道。其原型如下:PIPE(2) Linux Programmer’s Manual ...
阅读全文
摘要:一、 环境变量 应用程序在执行的时候,可能需要获取系统的环境变量,从而执行一些相应的操作。 在linux中有两种方法获取环境变量,分述如下。1、通过main函数的参数获取环境变量 main函数的多种定义方式: int main(void); int main(int argc, char* argv[ ]); int main(int argc, char* argv[ ], char* env[ ] )View Code方式1和方式2比较常见,下面介绍一下方式3: 第三个参数获取系统的环境变量。Exp:#include int main(int argc,ch...
阅读全文
摘要:最近学习linux系统下的应用编程,参考书籍是那本称为神书的《Unix环境高级编程》,个人感觉神书不是写给草鞋看的,而是写给大神看的,如果没有一定的基础那么看这本书可能会感到有些头重脚轻的感觉。我自己就是这样,比方说看进程间通信信号量章节的时候,开始感觉就很迷糊,因此也就想在这里写一些文字,给和我一样的草鞋分享一些自己的学习经历(算不上经验吧)。 环境: windows7, VMware 9.0 操作系统版本: RHEL 5.5 内核版本:2.6.18-194.el5 Gcc版本: gcc 版本 4.1.2 20080704 (Red Hat 4.1.2-48) 【20...
阅读全文