摘要:
实例学习进程线程编程上一篇博客感觉上就像一篇流水帐,就连本人都不知道自己在写些什么,所以,这篇博客将用三个实例说明linux进程和线程编程。1、实验一:创建进程说明:由父进程创建子进程,让子进程读取一个文件,父进程等待子进程读完文件后继续执行解决方案:用waitpid()函数协调两个进程。源码:#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/wait.h>#include<sys/types.h>void rawF(char *fileName){ F 阅读全文
摘要:
1、进程与线程的概念:略2、Linux进程结构 Linux使用一个称为进程控制块的数据结构task_struct来代表一个进程(注:task_struct在include\Linux\sched.h文件中定义),主要成员包括:1.进程状态(volatile long state):进程有可运行状态(0),不可运行状态(-1),暂停状态(>0)2.运行标志(unsigned long flags):描述进程管理信息或过度状态,可取值:a.#define PF_STARTING 0x00000002 /*进程被创建*/ b.#define PF_EXITING 0x00000004 /*进程 阅读全文
摘要:
C++标准库学习之Maps #include<map>C++ Maps是一种关联式容器,包含“关键字/值”对1、插入一个元素:insert()函数: 1)、插入val到pos的后面,然后返回一个指向这个元素的迭代器:iterator insert( iterator pos, const pair<KEY_TYPE,VALUE_TYPE> &val );2)、插入start到end的元素到map中:void insert( input_iterator start, input_iterator end );3)、只有在val不存在时插入val。返回值是一个指向 阅读全文
摘要:
C++标准库学习之Stacks #include<stack>C++ Stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,——也就是说实现了一个先进后出(FILO)的数据结构。1、比较和分配堆栈语法: ==、<=、>=、<、>、!=所有的这些操作可以被用于堆栈. 相等指堆栈有相同的元素并有着相同的顺序。注:这些操作虽然支持,但是应该根本不会用吧!2、bool empty():堆栈为空则返回真3、void pop():移除堆栈中最顶层元素4、void push( const TYPE &val ):将val值压栈,使其成为栈顶的第一个 阅读全文