Linux
选择性大失所望
!!!!!?????。。。。。
展开
-
Linux中目录文件的权限及其对应的操作
Linux中有个宗旨,就是一切皆文件,那么因为这个所以目录其实对于Linux来说也是一个文件;既然是一个文件,那个访问这个文件也就要有相应的权限,今天就来测试一下这个权限; 首先我们假如要显示一个目录文件的话, 虽然我们创建了这个目录,但是当我们把目录文件的权限修改只有r权限时,我们可以看到这个目录,但是当我们想要进入这个目录的时候的,就会发现权限不允许的情况; 当我们将其原创 2017-03-23 19:10:03 · 658 阅读 · 0 评论 -
正则表达式详解
正则表达式关于正则表达式的来源和历史有感兴趣的小伙伴直接看百度百科就好;正则表达式你可以理解它是用事先规定好的一些符号,及一些特定组合来组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑”,来过滤你想要找出的字符串;而其强大之处在于,这个规则是通用的,不管你在哪个版本,哪里,只要是支持正则表达式,他就是这个规则,所以还是有必要记一记的;下面就来说一说这些事先定好的规则,主要分为原创 2017-07-03 22:10:32 · 736 阅读 · 0 评论 -
TCP--server升级版
前面已经编写完基本的TCP服务器和客户端了;现在要对服务器做一个改进版本的,前面的服务器,其实只支持一个访问,因为当我们监听到一个程序的时候,本进程只能服务其一个socket; 现在来写一个支持多用户访问的,其中有好几个方法,可以来支持多用户访问;可以使用多进程,每当监听到一个请求时,就创建一个进程来让子进程去为他服务;这样就可以再去监听下一个请求了; 53 int id =原创 2017-06-23 18:45:45 · 348 阅读 · 0 评论 -
TCP--client
上章说完服务器,再来说一下客户端吧; 客户端的任务就轻松多了,由于客户端不需要固定的端口号,因此不必调⽤bind(),客户端的端口号由内核⾃动分配。客户端不是不允许调⽤bind(),只是没有必要调⽤bind()固定⼀个端⼜号,服务器也不是必须调⽤bind(),但如果服务器不调⽤bind(),内核会⾃动给服务器分配监听端⼜,每次启动服务器时端口号都不⼀样,客户端要连接服务器就会遇到⿇烦。所以客户端只原创 2017-06-23 18:09:13 · 315 阅读 · 0 评论 -
TCP--server
一个在linux下的基于tcp的服务器和客户端;具体的网络基础参照谢希仁老师的《计算机网络》来入门;在TCP/IP协议中,“IP地址+TCP或UDP端⼜号”唯⼀标识⽹ 络通讯中的⼀个进程,“IP地址+端⼜号”就称为socket;先说一些规定吧:TCP/IP协议规定,⽹络数据流应采⽤⼤端字节序,即低地址⾼字节。先发出的数据是低地址,后发出的数据是⾼地址。所以为了程序的移植性,系统提供了一些接口原创 2017-06-23 17:58:04 · 1022 阅读 · 0 评论 -
线程死锁
死锁 是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去;死锁产生的四个必要条件: 1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。 2)请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求原创 2017-07-02 17:31:47 · 222 阅读 · 0 评论 -
线程安全与可重入函数
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据; 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的原创 2017-07-02 17:15:13 · 431 阅读 · 0 评论 -
linux进程间通信--管道
作为进程间通信的第一篇,那么先来讲述一下什么是进程间通信吧; 因为每个进程各⾃有不同的⽤户地址空间,任何⼀个进程的全局变量在另⼀个进程中都看不到所以进 程之间要交换数据必须通过内核,在内核中开辟⼀块缓冲区,进程1把数据从⽤户空间拷到内核缓 冲区,进程2再从内核缓冲区把数据读⾛,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。先来说进程间通信第一种方原创 2017-06-13 20:18:37 · 329 阅读 · 0 评论 -
linux--man 1/2/3查找的区别
man 1 命令man 2 xxx用于系统调用man 3 xxx 用于库函数如果某个库函数没有同名的命令和系统调用,那才能直接用man xxx原创 2017-06-21 16:03:34 · 1004 阅读 · 0 评论 -
linux下孤儿进程和僵尸进程
我们知道在linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init原创 2017-04-19 22:14:47 · 423 阅读 · 0 评论 -
Linux下的进程控制块(PCB)task_struct
或许你对于task_struct是感到陌生的,那么你就先要知道task_struct是进程控制块(PCB)在linux下的一个具体的实现就好,如果你不知道什么是进程控制块的话,那就先看进程,然后再一步一步来;什么是进程? 在之前的操作系统的课程学习中,给出的定义:进程是程序的一次动态的执行过程。(这样,你真的是能想明白吗?概念确实是比较抽象的,反正之前学习的时候我不是很清楚的)。进程=程序段原创 2017-04-13 20:17:46 · 712 阅读 · 0 评论 -
Linux中粘滞位的实现及作用
在上篇文章中提到了关于权限的事情,然后就发现一个很有趣的事情,直接上示例: 这个时候我们在root下创建了一个目录叫做test目录,并将其的权限改为000,这个时候我们发现当我们切回正常用户,也就是我们相当于root用户是other用户,并且我们没有任何权限,可以对这个目录做操作,虽然我们不能访问这个目录页不能在在其中创建文件,但是我们却可以做一件事就是我们可以直接把这个目录删除掉,并且我们并没原创 2017-03-30 13:58:03 · 2245 阅读 · 0 评论 -
Linux中find指令的常用选项及示例
Linux下find命令在目录结构中搜索⽂件,并执⾏指定的操作。 Linux下find命令提供了相当多的查找条件,功能很强⼤。由于 find具有强⼤的功能,所以它的选项也很多,其中⼤部分选项都值 得我们花时间来了解⼀下。即使系统中含有网络⽂件系统( NFS), find命令在该⽂件系统中同样有效,只你具有相应的权限。 现在我就find这条命令及其常用选项做个描述:原创 2017-03-30 19:06:32 · 934 阅读 · 0 评论 -
Linux下的eval以及和$(),``
假设cmd=” echo 33” eval $cmd 等价于 “echo 33 ” 其实相当是先让后边的变量先执行,再执行其结果; 同时这些需要进行两次扫描的变量有时候被称为复杂变量。同时在shell脚本中还有等价的两条命令“ ,$() 都是做命令替换的,和上面变量替换差不多;都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。$( )与`` 在操作上,这两原创 2017-07-18 10:19:56 · 394 阅读 · 0 评论