如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
LINUXC编程复习总结LINUXOS基础LINUXOS基础VI的模式VI的常用命令shell编程Shell变量本地变量Bashshell的基本操作元字符命令自动展开命令历史与命令重复预定义变量Shell的输入输出标准输入/输出重定向shell脚本编程LINUX环境C编程基础GDB简介GDB简介GDB简介工程管理器Makefile工程管理器Makefile工程管理器Makefile工程管理器Makefile工程管理器Makefile工程管理器Makefile工程管理器Makefile工程管理器Makefile系统调用系统调用简介系统调用简介系统调用简介系统调用简介文件管理文件管理进程管理进程管理进程管理进程管理信号信号信号信号进程间通信(IPC)进程间通信(IPC)进程间通信(IPC)进程间通信(IPC)进程间通信(IPC)网络通信SOCKET编程SOCKET类型SOCKET类型SOCKET编程SOCKET编程—系统调用SOCKET编程—系统调用SOCKET编程—Internet套接字SOCKET编程—Internet套接字SOCKET编程—Internet套接字线程并发执行的进程具有两个基本的属性:(1)进程既是一个拥有资源的独立单位,它可独立分配虚地址空间、主存和其它系统资源;(2)进程又是一个可独立调度和分派的基本单位。这两个基本属性使进程成为并发执行的基本单位。在一些OS中,象大多数UNIX系统、Linux等,进程同时具有这两个属性。而另一些OS中,象WinNT、Solaris、OS/2、MacOS等,这两个属性由OS独立处理。为了区分两个属性,资源拥有单元称为进程(或任务),调度的单位称为线程。每个线程有一个线程ID线程ID和进程ID的区别:进程ID在整个系统中是唯一的,但线程ID只在它所属的进程环境中有效线程ID相关系统调用#include<pthread.h>pthread_tpthread_self(void);获得线程自身IDintpthread_equal(pthread_ttid1,pthread_ttid2);比较两个线程ID是否相等#include<pthread.h>pthread_tpthread_create(pthread_t*restricttidp,constpthread_attr_t*restrictattr,void*(*start_rtn)(void),void*restrictarg);调用成功返回由tidp指向的线程ID,attr参数用于指定各种不同的线程属性,attr设为NULL表示创建默认属性的线程。新建线程从start_rtn函数的地址开始运行(该函数只有一个无类型指针参数arg,如果需要向start_rtn函数传递的参数不止一个,那么需要把这些参数放到一个结构中,并把这个结构的地址作为arg参数传入)。调用失败返回错误码。例:打印线程IDthreadid.c如果进程中的任一线程调用了exit,Exit或_exit,整个进程将会终止。如果信号的默认动作是终止进程,那么把该信号发送到线程会终止整个进程单个线程可以通过下列三种方式在不终止整个进程的情况下终止:1,线程只是从例程中返回;2,线程可以被同一进程中的其他线程取消;3,线程调用pthread_exit;#include<pthread.h>voidpthread_exit(void*rval_ptr);rval_ptr是一个无类型指针,与传递给pthread_create的单个参数类似。进程中的其他线程可以通过调用pthread_join函数访问到这个指针。intpthread_join(pthread_tthread,void**rval_ptr);调用这个函数的线程将一直阻塞,到指定的线程调用pthread_exit、从启动例程中返回或被取消。例:获得线程退出状态exitstatus.c#include<pthread.h>voidpthread_exit(void*rval_ptr);rval_ptr是一个无类型指针,与传递给pthread_create的单个参数类似。进程中的其他线程可以通过调用pthread_join函数访问到这个指针。intpthread_join(pthread_tthread,void**rval_ptr);调用这个函数的线程将一直阻塞,到指定的线程调用pthread_exit、从启动例程中返回或被取消。例:获得线程退出状态exitstatus.c通过小心地控制互斥量加锁的顺序来避免死锁的发生。所有线程按相同的顺序对互斥量进行加锁。只有在一个线程试图以与另一个线程相反的顺序锁住互斥量时,才可能出现死锁。使用pthre