
file命令 用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程,下面为大家讲解一下file 命令使用实例。
浅谈Linux下file的应用实例浅谈Linux下file的应用实例
file的官方解释为:
file-determinefile
也就是说可以识别文件类型的意思,也可用来辨别一些文件的编码格式。
下面看几个比较使用的例子。
file后直接跟文件,得到如下所示信息
filebook.PDFdelete.pdf:PDFdocument,Version1.3filebookdelete:PDFdocument,version1.3
可以看出加不加后缀都是没有关系的。
file-bbook.pdfPDFdocument,version1.3
加上-b参数,是brief的含义,将只显示文件辨识结果,不显示文件名称了,这个其实对于很多文件而言,不是很友好。
file-idelete.pdfdelete.pdf:application/pdf;charset=binary
加上-i参数,是mime类型的含义,我也不懂是啥意思,但是我能刚方便地读懂我想知道的文件类型的含义。这就够了,不是吗,毕竟我们是来是用file命令的。
实例四:查看文件中的文件名的文件信息
cathello.txtsunset.jpgfile-fhello.txtsunset.jpg:JPEGimagedata,JFIFstandard1.01
这个咋听着这么拗口,其实很简单,其实并不难,加上-f参数,是file-from类型的含义,到底是几个意思呢,也就是你想查看文件的类型信息的文件名在一个文件里面,从这个文件里面读取文件来的到信息,如下即可晓得。
这个功能说实话,没搞明白有什么作用,默认的:感觉挺好用的,当然这个应该属于定制型的,如下所示:
实例六:查看软链接的文件信息
filea.jpga.jpg:symboliclinkto`sunset.jpg
默认情况下,如果没有L参数,只能得到这个文件是软链接的信息,如果加上这个参数,就能看到源文件的文件信息,这个功能还是很赞的。
系统资源耗尽引起的蓝屏故障如何解决?
太低级了!实例:蓝屏故障常常发生在进行一项比较大的工作时,或是在保存复制的时候,且往往发生得比较突然。 这类故障的发生原因主要是与三个堆资源(系统资源、用户资源、GDI资源)的占用情况有关。 解决方法:打开你的资源状况监视器,看一下剩余资源,如果你的三种资源都在50%甚至更低,就很容易出现诸如“非法操作”、“蓝屏”或“死机”故障。 为此,必须减少资源浪费,减少不必要的程序加载,避免同时运行大程序(图形、声音和视频软件),例如加载计划任务程序,输入法和声音指示器,声卡的DOS驱动程序,系统监视器程序等等。
C语言文件编程
你看 char num[3]你的学号是以字符数组形式存储的 当你从文件里面读取时,由于你文件中的学号是3个字符,你读取时是以字符串形式来读取的 那么读取时实际上在001后面还有个字符串的结束字符,也就是实际读取了3+1个字符,你如果声明的字符数组num的容量小于4,无法保存结束字符,必然要出错,不是3不3的问题,而是只要比4会出错,比4大则ok
同理 你存储的姓名是7个字符 当你声明数组name时,只要容量比8小必然出错,比8大则ok,不信你试试,例如char name[7];
linux 编程问题 在主进程中创建2个子进程,一个用exec函数,一个用fork
编写一段程序,使用系统调用fork( )创建两个子进程。 当此程序运行时,在系统中有一个父进程和两个子进程活动。 让每一个进程在屏幕上显示一个字符;父进程显示字符“a”,子进程分别显示字符“b”和“c”。 试观察记录屏幕上的显示结果,并分析原因。 〈程序〉 #include main() { int p1,p2; if(p1=fork()) /*子进程创建成功*/ putchar(b); else { if(p2=fork()) /*子进程创建成功*/ putchar(c); else putchar(a); /*父进程执行*/ } } bca(有时会出现abc的任意的排列) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 编制一段程序,实现进程的管道通信。 使用系统调用pipe()建立一条管道线。 两个子进程p1和p2分别向通道个写一句话: child1 process is sending message! child2 process is sending message! 而父进程则从管道中读出来自两个进程的信息,显示在屏幕上。 〈程序〉 #include #include #include int pid1,pid2; main( ) { int fd[2]; char outpipe[100],inpipe[100]; pipe(fd); /*创建一个管道*/ while ((pid1=fork( ))==-1); if(pid1==0) { lockf(fd[1],1,0); sprintf(outpipe,child 1 process is sending message!); /*把串放入数组outpipe中*/ write(fd[1],outpipe,50); /*向管道写长为50字节的串*/ sleep(5); /*自我阻塞5秒*/ lockf(fd[1],0,0); exit(0); } else { while((pid2=fork( ))==-1); if(pid2==0) { lockf(fd[1],1,0); /*互斥*/ sprintf(outpipe,child 2 process is sending message!); write(fd[1],outpipe,50); sleep(5); lockf(fd[1],0,0); exit(0); } else { wait(0); /*同步*/ read(fd[0],inpipe,50); /*从管道中读长为50字节的串*/ printf(%s\n,inpipe); wait(0); read(fd[0],inpipe,50); printf(%s\n,inpipe); exit(0); } } } 〈运行结果〉延迟5秒后显示: child1 process is sending message! 再延迟5秒: child2 process is sending message! 附:我承认我是复制的 不过很符合题意~
发表评论