当前位置: 首页 > news >正文

哪里创建免费个人网站做一页简单的h5多少钱

哪里创建免费个人网站,做一页简单的h5多少钱,最佳磁力吧cili8,京东网站建设策划书fcntl fcntl.c实现了文件控制系统调用fcntl和两个文件句柄描述符的复制系统调用dup()和dup2()。 dup返回当前值最小的未用句柄#xff0c;dup2返回指定新句柄的数值#xff0c;句柄的复制操作主要用在文件的标准输入、输出重定向和管道方面。 dupfd 复制文件句柄#xff…fcntl fcntl.c实现了文件控制系统调用fcntl和两个文件句柄描述符的复制系统调用dup()和dup2()。 dup返回当前值最小的未用句柄dup2返回指定新句柄的数值句柄的复制操作主要用在文件的标准输入、输出重定向和管道方面。 dupfd 复制文件句柄参数fd是要复制的文件句柄arg是新文件句柄的最小数值返回值是新文件句柄或者错误码 static int dupfd(unsigned int fd, unsigned int arg) {if (fd NR_OPEN || !current-filp[fd])return -EBADF;if (arg NR_OPEN)return -EINVAL;//查找空闲的文件句柄while (arg NR_OPEN)if (current-filp[arg])arg;elsebreak;if (arg NR_OPEN)return -EMFILE; //清除进程的 close_on_exec 位图中的特定位。close_on_exec 是一个位图用于记录在执行 exec 系统调用时是否关闭相应的文件描述符。current-close_on_exec ~(1arg);(current-filp[arg] current-filp[fd])-f_count;return arg; } dup2和dup的实现 int sys_dup2(unsigned int oldfd, unsigned int newfd) {sys_close(newfd);return dupfd(oldfd,newfd); }int sys_dup(unsigned int fildes) {return dupfd(fildes,0); } sys_fcntl 的函数 实现了 fcntl 系统调用的功能。fcntl 系统调用用于对打开文件描述符进行操作和控制通过传递不同的命令cmd来实现不同的操作。 下面是该函数的作用和代码实现的解释 首先它检查给定的文件描述符fd是否有效即必须小于已打开文件描述符的最大数目NR_OPEN并且与当前进程的文件描述符表中的相应条目current-filp[fd]关联。 如果文件描述符无效函数返回错误码 -EBADF-9无效的文件描述符。 根据传递的命令cmd参数执行不同的操作 F_DUPFD如果命令是 F_DUPFD则调用 dupfd 函数来复制给定的文件描述符fd到最小的可用文件描述符号arg。F_GETFD如果命令是 F_GETFD则返回当前进程的 close_on_exec 位图中对应文件描述符的状态即该文件描述符在 exec 执行时是否会被关闭。F_SETFD如果命令是 F_SETFD则根据参数 arg 将当前进程的 close_on_exec 位图中对应文件描述符的状态进行设置即设置或清除该文件描述符在 exec 执行时是否会被关闭的标志位。F_GETFL如果命令是 F_GETFL则返回与给定文件描述符关联的文件状态标志。F_SETFL如果命令是 F_SETFL则根据参数 arg 对给定文件描述符关联的文件状态标志进行设置例如设置或清除非阻塞O_NONBLOCK和追加O_APPEND等标志位。其他命令F_GETLK、F_SETLK、F_SETLKW该函数返回 -1表示不支持给定的命令。 int sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg) { struct file * filp;if (fd NR_OPEN || !(filp current-filp[fd]))return -EBADF;switch (cmd) {case F_DUPFD:return dupfd(fd,arg);case F_GETFD:return (current-close_on_execfd)1;case F_SETFD:if (arg1)current-close_on_exec | (1fd);elsecurrent-close_on_exec ~(1fd);return 0;case F_GETFL:return filp-f_flags;case F_SETFL:filp-f_flags ~(O_APPEND | O_NONBLOCK);filp-f_flags | arg (O_APPEND | O_NONBLOCK);return 0;case F_GETLK: case F_SETLK: case F_SETLKW:return -1;default:return -1;} } ioctl ioctl.c文件实现了输入、输出控制系统调用ioctl主要调用tty_ioctl函数对终端IO进行控制 extern int tty_ioctl(int dev, int cmd, int arg);typedef int (*ioctl_ptr)(int dev,int cmd,int arg);#define NRDEVS ((sizeof (ioctl_table))/(sizeof (ioctl_ptr)))static ioctl_ptr ioctl_table[]{NULL, /* nodev */NULL, /* /dev/mem */NULL, /* /dev/fd */NULL, /* /dev/hd */tty_ioctl, /* /dev/ttyx */tty_ioctl, /* /dev/tty */NULL, /* /dev/lp */NULL}; /* named pipes */int sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg) { struct file * filp;int dev,mode;if (fd NR_OPEN || !(filp current-filp[fd]))return -EBADF;//判断文件类型modefilp-f_inode-i_mode;if (!S_ISCHR(mode) !S_ISBLK(mode))return -EINVAL;//获取设备号dev filp-f_inode-i_zone[0];if (MAJOR(dev) NRDEVS)return -ENODEV;if (!ioctl_table[MAJOR(dev)])return -ENOTTY;//对应ioctl_table函数指针表中没有对应函数则返回出错码return ioctl_table[MAJOR(dev)](dev,cmd,arg); }stat 实现了取文件信息状态系统调用stat和fstat并将信息存放用户的文件状态结果缓冲区中 cp_stat复制文件状态信息 static void cp_stat(struct m_inode * inode, struct stat * statbuf) {struct stat tmp;int i;//验证存放数据的内存空间verify_area(statbuf,sizeof (* statbuf));tmp.st_dev inode-i_dev;tmp.st_ino inode-i_num;tmp.st_mode inode-i_mode;tmp.st_nlink inode-i_nlinks;tmp.st_uid inode-i_uid;tmp.st_gid inode-i_gid;tmp.st_rdev inode-i_zone[0];tmp.st_size inode-i_size;tmp.st_atime inode-i_atime;tmp.st_mtime inode-i_mtime;tmp.st_ctime inode-i_ctime;//复制状态信息到用户缓冲区for (i0 ; isizeof (tmp) ; i)put_fs_byte(((char *) tmp)[i],((char *) statbuf)[i]); } sys_stat根据文件名获取文件状态信息 int sys_stat(char * filename, struct stat * statbuf) {struct m_inode * inode;//根据文件名找出对应的i节点if (!(inodenamei(filename)))return -ENOENT;cp_stat(inode,statbuf);iput(inode);return 0; }sys_fstat根据文件描述符获取文件状态信息 int sys_fstat(unsigned int fd, struct stat * statbuf) {struct file * f;struct m_inode * inode;if (fd NR_OPEN || !(fcurrent-filp[fd]) || !(inodef-f_inode))return -EBADF;cp_stat(inode,statbuf);return 0; }
http://www.w-s-a.com/news/90814/

相关文章:

  • 恩施网站优化郑州有没有厉害的seo
  • 电子商务网站建设与管理期末考试题铜山区建设局网站
  • 怎么做非法彩票网站大兴安岭网站建设公司
  • 网站备案授权书模板海外如何淘宝网站建设
  • 网站开发提供源代码dedecms做网站教程
  • 怎么做国际网站首页erp系统一套大概多少钱
  • 做代理网站用什么软件建设网站的企业多少钱
  • 微企免费做网站360收录提交
  • 网站导航页怎么做wordpress数据库批量替换
  • wordpress站点更换域名自己做wordpress 模版
  • 怎么做虚拟的网站东莞常平邮编是多少
  • 电子商务网站和普通网站的区别正规网站建设多少费用
  • 郴州免费招聘网站前端好还是后端好
  • 织梦网站怎样做子域名20个中国风网站设计欣赏
  • wordpress网站搬简约创意logo图片大全
  • 叙述网站制作的流程石家庄58同城最新招聘信息
  • 南昌微信网站建设东莞网站优化软件
  • 爱站数据官网纯静态网站挂马
  • 网站建设公司未来方向3d设计网站
  • 建设部网站 干部学院 一级注册建筑师培训 2014年做网站开发的提成多少钱
  • 网上请人做软件的网站铝合金型材外发加工网
  • 手机网站建设万网山东省作风建设网站
  • 网站策划专员招聘50万县城做地方网站
  • 网站开发公司+重庆wordpress自定义搜索界面
  • 梅州南站学校官网
  • 网站变灰代码 所有浏览器企业邮箱域名怎么填写
  • 网站建设哪好旅行社网站模板
  • 网站开发发展存在的问题交换链接营销的经典案例
  • 烟台高端网站建设公司福田市网站建设推广
  • 做网站如何保证询盘数量智慧城市