APUE
buaa_shang
这个作者很懒,什么都没留下…
展开
-
UNIX环境高级编程--第三-四章总结
1.对于内核,所有打开的文件都通过文件描述符(一个非负数)引用, 文件描述符0与进程的标准输入(stdin)向关联------0被替换为STDIN_FILENO 文件描述符1与进程的标准输入(stdout)向关联------1被替换为STDOUT_FILENO 文件描述符2与进程的标准输入(stderr)向关联------2被替换为STDERR_FILENO2原创 2012-11-26 10:04:23 · 691 阅读 · 0 评论 -
UNIX环境高级编程--第一章总结
1.shell是一个命令行解释器,它读取用戶输入,然后执行命令.用戶通常用终端(交互式shell),有时通过文件(称为shell脚本,shell script)向shell进行输入.2.stat和fstat函数返回包含所有文件屬性的一个信息结构.3.目录是一个包含许多目录项的文件,在邏辑上可以认为每个目录项都包含一个文件名,同时还包含说明文件屬性的信息.(目录项的邏辑视图与实際存放在磁盘上原创 2012-11-25 22:22:19 · 581 阅读 · 0 评论 -
UNIX环境高级编程--第十一章线程总结
1.只要单个资源需要在多个用戶间共享,就必须处理一致性问题.2.处理器的数量并不影响程序结构,所以不管处理器的个数是多少,程序可以通过使用线程得以简化,而且,即使多线程程序在串行化任务时不得不阻塞,由于某些线程在阻塞时还有另外一些线程可以运行,所以多线程程序在单处理器上仍能改善响应时间和吞吐量.3.线程创建时并不能保证哪个线程会先运行,是新建的线程还是调用线程.4.单个线程的三种退出方原创 2012-12-04 16:56:41 · 809 阅读 · 0 评论 -
pthread_create()使用的小问题
APUE上的一个例子#include "apue.h"#include #include pthread_t ntid;void printids(const char *s) { pid_t pid; pthread_t tid; pid = getpid(); tid = pth原创 2012-12-03 11:19:04 · 1112 阅读 · 0 评论 -
进程原语和线程原语的比较
进程原语 线程原语 描述 fork pthread_create 创建新的控制流 exit pthread_exit 从现有的控制流中退出 waitpid pthread_join 从控制流中原创 2012-12-03 19:39:52 · 1904 阅读 · 0 评论 -
UNIX环境高级编程--第9章总结
1.经由网络登陆至系统时,终端和计算机之间的连接不是点对点连接.2.在网络登陆情况下,所有登录都经由内核的网络接口驱动程序,事先并不知道将会有多少这样的登录.我们不是使一个进程等待每个可能的登录,而是必须等待一个网络连接请求的到达.3.图形界面的窗口管理器登录并不会产生登录shell.所以其环境变量设置在~/.bashrc中.4.会话是一个或多个进程组的集合.进程调用setsid建立一原创 2012-12-01 20:33:09 · 725 阅读 · 0 评论 -
UNIX环境高级编程--第七章进程环境总结
1.C程序总是从main函数开使执行的----当内核执行C程序时,在调用main函数前先调用一个特殊的启动例程.可执行文件将此例程指定为程序的起始地址,--这是有连接编辑器设置的,而连接编辑器则由C编译器(通常是cc)调用. -------启动例程从内核取得命令行参数和环境变量值,然后为调用main函数作好准备.2.当执行一个程序时,调用exec的进程可将命令行参数传递给该新程序.3.每个原创 2012-11-29 18:36:33 · 567 阅读 · 0 评论 -
UNIX环境高级编程--第十章信号总结
1.信号是软件中断,信号提供了一种处理异步事件的方法.2.产生信号的事件对进程来说是随机出现的,进程不能简单的测试一个变量来判别是否出现了一个信号,而是必须告诉内核"在此信号出现时,请执行下列动作."3.内核执行的三种信号处理动作: (1)忽略此信号:有两个信号--SIGKILL和SIGSTOP不能忽略. (2)捕捉信号:通知内核在某种信号发生时调用一个用戶函数,在原创 2012-12-02 15:23:07 · 911 阅读 · 0 评论 -
UNIX环境高级编程--第八章进程控制总结
1.ID为0的进程通常是调度进程,也称交换进程,是内核的一部分,也称系统进程2.进程ID为1的进程是init进程,在自举过程结束时由内核调用,它不是内核中的系统进程,但它以超级用戶权限运行.3.在某些虚拟存储器实现中,进程ID为2的是守护进程,此进程负责支持虚拟存储系统的分页操作.4.fork()函数被调用一次,但返回两次.两次返回的唯一区别是子进程的返回值是0,而父进程的返回值则是子原创 2012-12-01 08:39:25 · 831 阅读 · 0 评论 -
linux的system函数
下面为system函数的一种实现:#include #include #include int system(const char *cmdstring){ pid_t pid; int status; if(cmdstring == NULL) //system接受命令为空时直接返回原创 2012-11-30 19:41:56 · 867 阅读 · 0 评论 -
通过一道面试题谈linux下的fork运行机制
fork()的返回值指明的是进程运行的上下文环境。如:pid_t pid;pid = fork();if(pid>0) {/*如果返回值大于零,表明处于父进程上下文环境中,返回值是子进程的ID号*/} else if(pid == 0) {/*返回值为零,表明处于子进程上下文环境中*/} else {/*表烦调用fork发生了错误,但仍处于父进程的上下文*/原创 2012-12-02 20:55:43 · 1264 阅读 · 0 评论