知秋一叶

这世界里的每一个人,每一个东西,包括高山大海,刀剑风云,其本质都是一串数字流。...

排序:
默认
按更新时间
按访问量

Linux 系统应用编程——网络编程(高级篇)

一、网络超时检测         在网络通信过程中,经常会出现不可预知的各种情况。例如网络线路突发故障、通信一方异常结束等。一旦出现上述情况,很可能长时间都不会收到数据,而且无法判断是没有数据还是数据无法到达。如果使用的是TCP协议,可以检测出来;但如果使用UDP协议的话,需要在程序中进行相关检测...

2016-01-16 11:23:26

阅读数:3158

评论数:0

Linux 系统应用编程——网络编程(TCP 协议三次握手过程)

TCP(Transmission Control Protocol) 传输控制协议  TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:  位码即tcp标志位,有6种标示: SYN ( synchronous 建立联机 )  ACK ( ackn...

2016-01-16 10:52:45

阅读数:1549

评论数:0

Linux 系统应用编程——网络编程(利用TCP/IP 模型分析数据传输过程)

(转载自:http://blog.sina.com.cn/s/blog_5ec353710101i892.html)    TCP/IP参考模型是一个非常基础,而且也非常重要的基础框架,要想入门数通这是个必须掌握的基本概念,本文档通过一个简单的示例,结合参考模型来分析一下数通的基本过程。 ...

2016-01-16 10:20:17

阅读数:1582

评论数:1

Linux 系统应用编程——网络编程(TCP/IP 数据包格式解析)

图中括号中的数字代表的是当前域所占的空间大小,单位是bit位。 黄色的是数据链路层的头部,一共14字节 绿色的部分是IP头部,一般是20字节 紫色部分是TCP头部,一般是20字节 最内部的是数据包内容 黄色部分:链路层 目的MAC:当前step目的主...

2016-01-16 10:01:01

阅读数:1868

评论数:1

Linux 系统应用编程——网络编程(I/O模型)

Unix下可用的5种I/O模型: 阻塞I/O 非阻塞I/O I/O复用(select和poll) 信号驱动I/O(SIGIO) 异步I/O(POSIX的aio_系列函数) 前四种都是同步,只有最后一种才是异步IO。   一个输入操作通常包括两个不同的阶段: 1)等待数据准备好; 2)从内核向进...

2016-01-14 18:13:10

阅读数:1579

评论数:0

Linux 系统应用编程——网络编程(常用命令解析)

1、telnet       Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服...

2016-01-13 20:59:35

阅读数:1756

评论数:0

Linux 系统应用编程——进程间通信(下)

在前面,我们学习了传统的进程间通信方式——无名管道(pipe)、有名管道(fifo)和信号(signal)。         下面我们来学习 System V  IPC 对象: 1、共享内存(share memory); 2、信号灯(semaohore); 3、消息队列(message queue...

2016-01-11 18:29:19

阅读数:1990

评论数:0

Linux 系统应用编程——多线程经典问题(生产者-消费者)

“生产者——消费者”问题是Linux多线程编程中的经典问题,主要是利用信号量处理线程间的同步和互斥问题。          “生产者——消费者”问题描述如下:           有一个有限缓冲区(这里用有名管道实现 FIFO 式缓冲区)和两个线程:生产者和消费者,它们分别不停地把产品放入缓冲...

2016-01-10 12:47:17

阅读数:5082

评论数:0

进程调度相关命令解析

进程相关命令 1、ps  查看系统中的进程 使用方式:ps [options] [--help] 说明:显示瞬间进程 (process) 的动态 参数:ps的参数非常多, 在此仅列出几个常用的参数并大略介绍含义 ps命令常用用法(方便查看系统进程) 1)ps a 显示现...

2016-01-09 22:06:24

阅读数:1188

评论数:0

Linux time()函数解析

time() 函数语法如下: 所需头文件 #include 函数原型 time_t time(time_t * timer) 参数说明 timer=NULL时得到机器日历时间; timer=时间数值时,用于设置日历时间; 函数返回值 机器日历时间     功能: 获取...

2016-01-09 21:03:23

阅读数:3254

评论数:0

Linux 系统应用编程——进程间通信(上)

现在再Linux应用较多的进程间通信方式主要有以下几种: 1)无名管道(pipe)及有名管道(fifo):无名管道可用于具有亲缘关系进程间的通信;有名管道除具有管道相似的功能外,它还允许无亲缘关系进程使用; 2)信号(signal):信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,...

2016-01-08 19:59:34

阅读数:3839

评论数:1

Linux 系统应用编程——线程基础

传送门:Linux多线程编程实例解析 .  linux多线程编程——同步与互斥 .      统多任务操作系统中一个可以独立调度的任务(或称之为顺序执行流)是一个进程。每个程序加载到内存后只可以唯一地对应创建一个顺序执行流,即传统意义的进程。每个进程的全部系统资源是私有的,如虚拟地址空间,文件描...

2016-01-07 17:56:42

阅读数:1682

评论数:0

Linux 系统应用编程——进程基础

一、Linux下多任务机制的介绍          Linux有一特性是多任务,多任务处理是指用户可以在同一时间内运行多个应用程序,每个正在执行的应用程序被称为一个任务。          多任务操作系统使用某种调度(shedule)策略(由内核来执行)支持多个任务并发执行。事实上,(单核)处理器...

2016-01-06 18:37:01

阅读数:1601

评论数:1

Linux 系统应用编程——标准I/O

标准I/O的由来         标准I/O指的是ANSI C 中定义的用于I/O操作的一系列函数。         只要操作系统安装了C库,标准I/O函数就可以调用。换句话说,如果程序中使用的是标准I/O函数,那么源代码不需要任何修改就可以在其他操作系统下编译运行,具有更好的可移植性。     ...

2016-01-05 20:12:22

阅读数:1289

评论数:0

静态库和动态库的分析

在Linux操作系统中,普遍使用ELF格式作为可执行程序或者程序生成过程中的中间格式。ELF(Executable and Linking Format,可执行连接格式)。      ELF文件格式包括三种主要的类型:可执行文件、可重定向文件、共享库: 1、可执行文件(应用程序) 可执行文件包含了...

2016-01-05 18:23:43

阅读数:1915

评论数:1

Linux 系统应用编程——文件I/O

Linux操作系统是基于文件概念的。文件是以字符序列构成的信息载体。根据这一点,可以把I/O设备当做文件来处理,因此,在磁盘上的普通文件进行交互所用的统一系统调用可以直接用于I/O设备。这样大大简化了系统对于不同设备的处理,提高了效率。Linux中的文件主要分为6种:普通文件、目录文件、符号链接文...

2016-01-04 16:20:36

阅读数:1064

评论数:1

Linux 系统应用编程——出错处理(errno)

1. errno变量      文件 中定义了符号 errno 以及可以赋予它的各种常量,这些常量都是以字符 E 开头。例如,若 errno 等于常量 EACCES,表示产生了权限问题(例如,没有打开所要求文件的足够权限)。       当 UNIX 函数出错时,常常返回一个负值,而且将整型变量...

2016-01-04 12:52:40

阅读数:885

评论数:0

文件I/O和标准I/O的区别

一、先来了解下什么是文件I/O和标准I/O: 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是一般所说的低级I/O——操作系统提供的基本IO服务,与os绑定,特定于linix或unix平台。 标准...

2016-01-01 10:12:41

阅读数:4631

评论数:1

linux多线程编程——同步与互斥

我们在前面文章中已经分析了多线程VS多进程,也分析了线程的使用,现在我们来讲解一下linux多线程编程之同步与互斥。 现在,我们不管究竟是多线程好还是多进程好,先讲解一下,为什么要使用多线程? 一、 为什么要用多线程技术? 1、避免阻塞,大家知道,单个进程只有一个主线程,当主线程阻塞的时候,整个进...

2015-12-15 17:18:10

阅读数:3173

评论数:0

Linux多线程编程实例解析

Linux系统下的多线程遵循POSIX线程接口,称为 pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux 下pthread的实现是通过系统调用clone()来实现的。clone()是 Linux所特有的系...

2015-12-14 18:00:22

阅读数:10025

评论数:4

提示
确定要删除当前文章?
取消 删除
关闭
关闭