unix环境高级编程
文章平均质量分 59
wbx9011
这个作者很懒,什么都没留下…
展开
-
unix环境高级编程编译方法 -apue最简单编译方法(第二版)
《UNIX环境高级编程》(这里使用的是第二版本的源码)每个历程中,都会有这样一行源码:#include "apue.h" 这个头文件是作者把把每个例程中常用的标准头文件,一些常用的出错处理函数(err_**()之类的函数)和一些常用的宏定义给整理在一个头文件中。这个可以省去在每个例程中录入较多的重复代码,这样可以减少每个例程的长度。给读者带来了不少麻烦。下面给出一种源原创 2015-05-17 08:40:48 · 1005 阅读 · 0 评论 -
select和epoll解释
转载地址:http://yaocoder.blog.51cto.com/2668309/888374 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过w原创 2015-08-30 16:16:04 · 677 阅读 · 0 评论 -
unix环境高级编程——文件操作
一、阻塞io操作和非阻塞io操作对于阻塞io操作:当cpu得不到需要的文件数据的时候,则将自己挂起,直到有了数据,才能执行下面的操作。非阻塞io: 当cpu得不到文件时候,其一直在轮询cpu,直达得到数据。二、文件描述符对于内核而言,所有打开的文件,都用文件描述符来引用。所有的文件操作都是由内核态完成的,当一个用户的进程创建一个文件时候,内核会给其返回一个文件描述符。原创 2015-08-29 20:01:53 · 483 阅读 · 0 评论 -
unix环境高级编程——标准IO
1、对于系统调用中的IO,是针对文件描述符的。而对于标准的IO是针对流的。标准的IO函数返回一个指向FILE的指针。2、打开流FILE *f;f = fopen("./a.txt",wr+);通过上面得到打开文件的指针,以后的操作可以根据此指针来进行。3、读和写数据流(1)每次读一个字符的IO: getc(f) fgetc(f) getch原创 2015-08-30 15:22:41 · 507 阅读 · 0 评论 -
unix环境高级编程---线程
一、线程概念如果进程需要完成多个任务的时候,需要对其进行串行化操作。而如果其中一个任务(比如io操作),造成任务执行的挂起。则可以分解任务,将任务分开执行。其中的每个任务就是所谓的线程。线程包含了表示进程内执行环境必需的信息。进程的所有信息对该进程的所有线程都是共享的。包括可执行的程序文本、程序的全局内存和堆内存、栈以及文件描述符。二、线程创建新增的线程可以原创 2015-07-01 14:54:38 · 470 阅读 · 0 评论 -
unix环境高级编程——进程环境
1、main()函数c语言总是从main()函数开始执行的,内核执行c语言程序时候,在调用main前先调用一个特殊的启动例程。启动例程来启动main()函数2、进程终止(1)从main()返回(2)调用exit()(3)调用_exit或者_Exit(4)最后一个线程从其启动例程返回(5)最后一个线程调用pthread_exit3、命令行参数mai原创 2015-06-28 10:43:38 · 696 阅读 · 0 评论 -
unix环境高级编程----进程控制wait()
一、wait()函数当一个进程中调用wait()函数的时候(1)如果其所有的子程序都还在运行,则阻塞(2)如果一个子进程已终止,则等待父进程获取其终止状态。(3)如果没有子进程,则返回错误。下面的实例中,在父进程中调用wait(),如果子进程还没有运行完毕,则将自己调入阻塞状态。等待子进程运行结束后,将子进程的资源回收后,自己再运行。#include #inc原创 2015-06-28 22:45:13 · 677 阅读 · 0 评论 -
unix环境高级编程----进程控制fock()函数
1、进程标识符每一个进程,都有一个id来对其进行标示。原创 2015-06-28 10:44:47 · 810 阅读 · 0 评论 -
unix环境高级编程——read(),write()
1.read函数调用read函数从文件去读数据,函数定义如下:[cpp] view plaincopy#include ssize_t read(int filedes, void* buff, size_t nbytes); 第一个变量代表文件描述符,如果是标准输入STDIN_FILENO第二个变量代表从文件中读进bu原创 2015-06-22 16:46:47 · 743 阅读 · 0 评论 -
unix环境高级编程——文件i/o
一、文件描述符对于内核,通过文件描述符来管理文件。什么是文件描述符?在unix中,用open或者create建立几个文件时候,内核向进程返回一个整数,用来记录此文件。以后对文件进行操作的时候,就用此文件描述符做引用。二、open函数open函数用于建立一个文件,函数返回文件描述符。[cpp] view plaincopy#incl原创 2015-06-22 16:19:18 · 641 阅读 · 0 评论 -
unix环境高级编程——进程状态
三态模型:在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化。进程一般有3种基本状态:运行、就绪和阻塞。(1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。(2)就绪:当一个进程获得了除处原创 2015-06-20 12:16:19 · 1519 阅读 · 0 评论 -
gdb带参数调试
一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要 把调试信息加到可执行文件中。使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点。如: > cc -g hello.c -o hello > g++ -g hello.cpp -o hello 如果没有-g,你将看不见程序的函数名、变量名,所代替的全是 运行时的内存地址原创 2016-07-21 16:09:13 · 1926 阅读 · 0 评论