Linux对每个进程保留一个进程控制块(process control block,PCB),PCB中有一项叫做文件描述表的成员,它是管理进程打开的文件的数据结构,里面是打开文件的文件描述符,每个文件描述符就像一个指针一样,内核有办法将其对应到文件表,文件表里面储存有文件状态标志,文件当前位置,索引节点指针,以及引用数等,其中索引节点指针又可以对应于内核中的索引节点表中的该文件的信息,注意索引节点表是内核用于区分文件的,每个文件仅对应一个。 dup(duplicate,复制)函数有两个dup和dup2,前者将某个已…

2020年06月20日 0条评论 38点热度 2人点赞 阅读全文

关于如何科学的做完一期青年大学习,办法就是:气运丹田,心无杂念,打开青年大学习,遇到题目之后科学的分析 ,认真作答,并完成课后习题; 。 。 。 。 。 。 。 。 。 。 。 。 。 咳咳,其实,为了科学的做好一期青年大学习,我们不光要学习它,还要连他的官网html代码也学习(多么牵强的理由),其实,我在几天认真的观察之后发现官网的html代码其实蕴含着规律,隐藏着答案,并顺手写了程序: ****首先声明,程序编写是用于学习,无意破坏青年大学习的运行秩序和信息安全**** http://news.cyol.com…

2020年05月24日 1条评论 61点热度 12人点赞 阅读全文

代码: void getCofactor(int row, int column,int size,double in[][MAX_SIZE],double out[][MAX_SIZE])//获取个元素的余子式 { register int i,j; register int c=0,r=0; for (i = 0; i < size; i++) { if (row == i)continue; for (j = 0,c=0; j < size; j++) { if (j != column)out[…

2020年04月13日 2条评论 96点热度 3人点赞 阅读全文

Linux下文件有着严格的权限属性,这让系统更加安全。 查看文件的权限属性可以通过ls命令 具体用法: 如图: 最左边用横杠连接起来的就是文件的权限属性,普通的权限有三种: 这三种权限是独立存在的,以任意方式组合比如-wx表示可写可执行r-x表示可读可执行,rwx表示可读可写可执行,没有相应的权限就用横杠表示 。 另外文件对于三种不同的用户可以分别设置权限。 所以对于同一个文件需要三组由rwx或特殊权限符号来表示 。 而ls -l命令中最前面的一位表示文件的类型,文件类型有以下几种: 如下图: 通常我们用一个八进制…

2020年04月05日 3条评论 123点热度 6人点赞 阅读全文

目前实现的功能:能够计算成真赋值,可以将任意合法命题公式化为主范式,可以输出真值表 目前bug : 不能对输入的命题公式检验合法性,如果不合法,运行结果是不确定的,程序崩溃,结果错误。 参考资料:波兰式或后缀表达式(百度),栈的使用。 实现原理: 直接实现命题公式的化简比较困难,但是可以先计算成真赋值和成假赋值,再根据成真赋值生成主范式就比较简单了, 计算成真赋值就是将命题变元提取,然后分别赋以一定的值,然后类似于上一篇文章《 C语言写科学计算器》 ,通过数字栈和符号栈的压栈和弹栈操作实现不同级别的运算符运算顺序。…

2020年04月03日 1条评论 117点热度 4人点赞 阅读全文

    目前实现的功能有:加,减,乘,除,乘方,三角函数(sin,cos,tan,sec,csc,cot),ln函数,支持括号,支持负数,数学常量(e,PI)     目前bug:不能进行算式的有效性检验(如1*-1就是不合法的应为1*(-1)),无效的算式将得到不确定的结果,有可能造成程序崩溃,结果错误等。 参考资料:波兰式或后缀表达式(百度),栈的使用。 运行截图: 代码: 编译环境:Windows visual studio 2019 代码仅供参考 , 运算错误表怪我。(今天是愚人节,代码你还敢信吗 )

2020年04月01日 2条评论 191点热度 6人点赞 阅读全文

。 //////////////////////////////////////////////////////////////////// // _ooOoo_ // // o8888888o // // 88" . "88 // // (| ^_^ |) // // O\ = /O // // ____/`---'\____ // // .' \\| |// `. // // / \\||| : |||// \ // // / _||||| -:- |||||- \ // // | | \\\ - /// | …

2020年03月09日 9条评论 529点热度 5人点赞 阅读全文

基数排序是利用空间性能换取时间性能的一种排序算法,它的时间复杂度为O(nlog(r)m)   空间复杂度为O(n+r),是一种稳定的排序算法 直接上代码。 int getMaxDigit(int arr[],int n) { int i,max = *arr; for (i = 0; i < n; i++) { if (arr[i] > max) { max = arr[i]; } } for (i = 0; max; i++) { max /= 10; } return i; } void Radix…

2020年02月20日 1条评论 397点热度 3人点赞 阅读全文

堆排序是利用堆的性质进行排序的排序方式,时间复杂度O (nlgn),空间复杂度O(1),是一种原地排序算法。 首先 你需要知道什么是树,什么是二叉树,以及什么是完全二叉树 堆是一种特殊的完全二叉树,堆分为大顶堆和小顶堆,大顶堆要求每个节点的子节点(如果有),必须小于父节点,整个树的根节点是最大的,小顶堆相反,每个子节点比父节点大,根节点是最小的节点。 我们以大顶堆为例,以下是几个大顶堆。 按顺序给第一个堆的每个节点编上号如下图 所以就可以用一个数组进行储存; int arr[] = {10,5,7,3,4}; 假如…

2020年02月19日 1条评论 245点热度 1人点赞 阅读全文

当遇到从某一字符串中匹配另一个字符串的时候就要用到这个算法 1.暴力匹配 s是主串要从s中搜索出p子串的位置 ,如果搜索失败返回-1  ,下面是暴力算法的步骤 1.i从s的头部开始依次向后遍历 2.匹配以i开头的s的子串能不能与p匹配,如果匹配返回i,不匹配继续查找; c语言代码 int search(char* s,char* p) { int i,j; for (i = 0; s[i]; i++) { for (j = 0; p[j]&&p[j] == s[i + j]; j++); if (p…

2020年02月16日 0条评论 134点热度 2人点赞 阅读全文