Linux
文章平均质量分 73
天天技术宅
这个作者很懒,什么都没留下…
展开
-
一份简单的代码演示缓冲区溢出的危害
最近学习到《深入理解计算机系统》这边书的3.12节的缓冲区溢出,于是写了个简单的测试代码演示了一下通过缓冲区溢出是如何神不知鬼不觉的运行一段代码的。先上代码运行后再分析:#include void hit(){ unsigned char buff[ 100 ] = { 0,0,0,0, //返回地址 'B','O','M','B','\0', 0x83,0xc4,0x80原创 2014-01-19 14:08:07 · 2769 阅读 · 0 评论 -
shell命令的执行顺序问题·拓扑排序的扩展
shell命令操作文件时有些特殊的顺序问题:比如:1. 管理员修改用户的问题:useroldnewu1200300u2300400u1用户要从原先的uid:200改为uid:300,要将文件系统内所有属于200的文件全部改为300u1改为300后与u2用户相同,就造成冲突,u2却要从原创 2013-08-10 16:57:35 · 1083 阅读 · 0 评论 -
shell脚本学习总结
看完了书《shell脚本学习指南》,顺便总结一下:原创 2013-08-20 17:21:13 · 1782 阅读 · 0 评论 -
shell脚本实现查找文件夹下重复的文件,并提供删除功能
Windows下有软件FindDupFile,可以搜索指定目录及其下子目录,列出所有内容完全相同的文件(文件名可能不同),然后由用户选择删除重复的文件。然而shell脚本却可以使用几行的命令完成与此相同的工作,借助windows下的shell脚本工具Cygwin,可以实现扫描Windows下的目录,原理简述如下:1.首先借助find命令扫描文件夹下类型为普通文件的所有文件,find命令的输原创 2013-07-31 22:35:18 · 7223 阅读 · 0 评论 -
针对unix环境编程的一些提问!
1. 为什么会把文件的权限管理和在程序中进行权限管理分开。一个用户或root安装了一套软件,那么管理员就可以直接更改文件系统的权限位以决定其他用户是否可以执行我安装的软件,而不是让软件启动后其自身再判断当前用户是否可以执行此软件,这就给root用户管理所安装软件的执行功能,而一旦软件安装完成,软件的执行文件将不可更改,那么要更改软件代码来判断权限的功能将是不可行的。2. 进程组的作用?原创 2012-09-13 17:34:52 · 673 阅读 · 0 评论 -
unix环境编程·信号特性
1. 启动一个程序对信号的影响执行一个程序时候,信号状态是默认或忽略的则exec时不改变动作,若在exec前捕获了一个信号,那么exec时将还原此信号为默认动作,信号捕获函数的地址在新程序中已无意义。例如:signal(SIGINT,SIG_IGN);execlp("sol",NULL);在shell内部编译此代码运行时,会启动sol游戏,但在shell中按下ctrl+c无法使游戏中断,因为S原创 2012-09-19 17:46:07 · 571 阅读 · 0 评论 -
用户级线程和内核级线程
根据在用户空间还是在核心实现多线程机制,线程又被分为用户级线程(User Level Thread)和内核级线程(Kernel Level Thread)。 有关线程的所有管理工作都有在用户级实现的线程库来支持。用户级线程库是用于用户级线程管理的例程包,支持线程的创建、终止,以及调度线程的执行并保存和恢复线程的上下文,这些操作都在用户空间运行,无需内核的支持,所以用户级线程的创建和管原创 2012-10-10 10:43:33 · 3419 阅读 · 0 评论 -
《unix环境编程》解释器文件
书上介绍的,是否一定需要解释器文件,说的很好。解释器确实使用户得到效率方面的好处,其代价是内核的额外开销,因为识别解释器文件的是内核。解释器文件的必要性:1. 有些程序是用脚本编写的,解释器文件可以将这一事实隐藏起来,也就是说解释器文件本身是个程序,可以用exec装入执行。2. 解释器脚本在效率方面也提供了好处。例如一个awk脚本,将其包装在shell脚本中:awk 'BEGI原创 2012-09-10 14:54:13 · 2288 阅读 · 0 评论 -
《unix环境编程》笔记-文件访问安全
文件的设置用户ID位和设置组ID位,会使进程拥有某个用户的权限来进行执行,这给系统造成很多安全性的考虑,但设置这两个位也是必须的,可以使某些进程暂时拥有其他用户的权限,执行一些操作。设置用户ID位和设置组ID位会使文件拥有特殊权限,因此某些操作会强制关闭这两个位。1. 非超级用户特权的进程对一个可写的文件写操作后,则设置用户ID位和设置组ID位被自动清除。使不怀好意的用户丢失对此文件的特殊原创 2012-08-23 15:08:26 · 486 阅读 · 0 评论 -
《unix环境编程》笔记-文件访问权限
文件访问权限是多用户系统的复杂机制,如何实现自己的文件不让其他用户访问,如何实现代替管理员用户实现对无权限的文件进行访问,有些文件夹不能打开是什么原因。与每个文件相关的东西,目录看做是目录文件:每个文件都记录所属的文件类型(普通文件、目录文件、块特殊文件、字符特殊文件、FIFO、套接字、符号链接)每个文件都有所属的用户和组,分别使用用户ID和组ID表示,指明文件所属的用户。每个文件原创 2012-08-21 21:24:06 · 810 阅读 · 0 评论 -
《unix环境编程》笔记-文件IO
1. lseek函数返回的新的文件偏移量通常文件的当前文件偏移量是个非负整数,但是某些设备也可能允许负的偏移量,所以在笔记lseek的返回值时,应该测试其是否等于-1,不判断是否小于02. IO的效率在BUFFSIZE=4096时效率最高3. ./a.out 5 5子句54. fcntl函数在修改文件描述符标志或文件状态标志时,先要取得文件标志,然后修改,然后再设置新标志,原创 2012-08-20 09:58:45 · 578 阅读 · 0 评论 -
文件IO的原子操作
设计多个进程共同操作一个文件的,就需要原子的操作下面几个问题:1.添加至一个文件多个进程都要添加数据到一个文件的尾端if(lseek(fd,0,SEEK_END)>=0){ write(fd,buff,100);}对单个进程而言,这个程序能正常工作,若多个进程同时调用,则会出现问题。每个进程都有它自己的文件表项,但共享同一个i节点。假定A进程调用lseek,它原创 2012-08-17 11:18:45 · 2200 阅读 · 0 评论