首页 > TAG信息列表 > newfd
dup
#include <unistd.h> int dup(int oldfd); int dup2(int oldfd, int newfd); #define _GNU_SOURCE /* See feature_test_macros(7) */ #include <fcntl.h> /* Obtain O_* constant definitions */ #include <unistd.h> int dupepoll学习代码
服务端server #include <head.h> int setNonBlock(int fd) { int status = 0; status = fcntl(fd, F_GETFL); status |= O_NONBLOCK; //把文件描述符设置为非阻性的 fcntl(fd, F_SETFL, status); return 0; } int main(int argc, char** argv) {MIT 6.828 Homework3:system call
首先是要在syscall.c.中修改代码,使它能够为每个系统调用都能够输出一部分的跟踪信息,如图: 于是找到syscall.c,这里没有什么特别好的方法,因此就用了简单粗暴的数组了: static const char*sysname[]={ [SYS_fork] "sys_fork", [SYS_exit] "sys_exit", [SYS_wait] "sys_dup()/dup2()函数使用
dup()函数 函数功能: 复制文件描述符; 函数原型 int dup(int oldfd); oldfd --需要复制的文件描述符; 函数返回值 成功:返回最小且没有被占用的文件描述符; 失败:返回-1,设置error; //测试dup函数复制文件描述符 #include <stdio.h> #include <stdlib.h> #include <string.h> #inclu