摘要:
#include <stdio.h>#include <stdlib.h>#include <signal.h>pid_t pid;void driver_handler(int signo) //司机的信号处理函数{ if (signo == SIGUSR1) printf("Let's go!\n"); if (signo == SIGUSR2) ... 阅读全文
posted @ 2013-03-08 18:49
dolinux
阅读(382)
评论(0)
推荐(0)
摘要:
FILE *fp;int fd;fp = fopen(“1.c”, “r”);等价于 fd = open(“1.c”,O_RDONLY);fp = fopen(“1.c”, “r+“);等价于 fd = open(“1.c”, O_RDWR);fp = fopen(“1.c”, “w”); 等价于 fd = open(“1.c”, O_WRONLY | O_CREAT | O_TRUNC, 0666);fp = fopen(“1.c”, “w+”); 等价于 fd = open(“1.c”, O_RDWR | O_CREAT | O_TRUNC, 0666);fp = fopen(“1.c”, 阅读全文
posted @ 2013-03-08 18:43
dolinux
阅读(603)
评论(0)
推荐(0)
摘要:
假如在父进程中调用了标准IO,会在用户空间产生一个结构体,其中封装了文件IO返回的文件描述符fd,同时还有针对不同函数的输入输出缓冲区,与之对应的内核空间也有一个文件IO创建的结构体。所以,stdin、stdout和stderr都指向的是用户空间的那个结构体,类型是FILE *。当调用fork函数创建了子进程后,对于内核空间的那个结构体,子进程不会拷贝,但是对于用户空间的那个结构体,子进程会进行拷贝。即:子进程中的stdin、stdout和stderr的指向是与父进程中的stdin、stdout和stderr不同的(所以子进程的输入缓冲区与父进程的输入缓冲区不在一个位置,同理,他俩的输出缓冲区 阅读全文
posted @ 2013-03-08 12:35
dolinux
阅读(398)
评论(0)
推荐(0)

浙公网安备 33010602011771号