首先说一下什么是哲学家进餐问题,这是操作系统课程中一个经典的同步问题, 问题如下:如上图,有6个哲学家和6根筷子(那个蓝色部分表示哲学家,那个紫色长条部分表示筷子),他们分别被编了0~5的号!如果某个哲学家想要进餐的话,必须同时拿起左手和右手边的两根筷子才能进餐!哲学家进餐完毕之后,就放下手中拿起的两根筷子!这样其他哲学家就能拿这些筷子进餐了! OK,这样就可能存在一个死锁问题,比如0号哲学家拿了0号筷子,1号哲学家拿了1号筷子!如此往复,最终的结果就是每个哲学家都只拿了1根筷子,每个人都无法进…
在Linux中一切设备皆文件,首先来看一下Linux下的文件都有哪些分类,也就是文件类型 文件类型:普通文件(包括shell脚本,文档,音频,视频).目录文件.设备文件(又细分为字符设备文件和块设备文件).FIFO文件(管道文件这货存在于内存中).还有socket文件又称套接字文件(它用于进程间的通信,管道传输就属于第三方通信机制).最后还有链接文件(分成软链接和硬链接): 硬链接文件:相当于源文件的一个别名,它和源文件指向相同的inode节点(这个inode后便会细说)系统并不为它重新分配in…
开发中遇到这样一个需求,需要判断当前网络的类型(wifi或者4G或者网线),在这里给大家一块分享下: 1.这里有一个linux指令:nmcli(大家自行百度即可) 2.nmcli device status    这个指令就会打印出你想要的东西 3.如何用QT去调取这个指令获取结果来进行上报呢?来一段代码吧 //执行linux指令获取返回结果 QString Common::executeLinuxCmd(QString strCmd) { QProcess p; p.start("bash&q…
1. df -hT命令   -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G) -T, --print-type      print file system type [root@rhel7 ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/rhel-root xfs 18G .5G 13G % /…
find ./ -name "*.lok"   // 查找文件find ./ -name "*.lok" |xargs rm -fr  // 查找文件并删除…
来源: 在Linux下如何使用自己的库函数-riverok-ChinaUnix博客 http://blog.chinaunix.net/uid-21393885-id-88128.html 构建Linux下的函数库编译方案 - observer的日志 - 网易博客 http://blog.163.com/figo_2007@126/blog/static/23180765201111622915148/ linux下的函数库 程序 编译_ablab_新浪博客 http://blog.sina.c…
I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线. 因此,I2C总线被非常广泛地应用在EEPROM,实时钟,小型LCD等设备与CPU的接口中. linux下的驱动思路 在linux系统下编写I2C驱动,目前主要有两种方法,一种是把I2C设备当作一个普通的字符设备来处理,另一种是利用linux下I2C驱动体系结构来完成.下面比较下这两种方法: 第一种方…
本文转载自:http://blog.csdn.net/wangpengqi/article/details/17711165 I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线. 因此,I2C总线被非常广泛地应用在EEPROM,实时钟,小型LCD等设备与CPU的接口中. linux下的驱动思路 在linux系统下编写I2C驱动,目前主要有两种方法,一种…
Linux下的文件及文件后缀名 2013-03-14 15:34 6969人阅读 评论(0) 收藏 举报 ++++++++++++++++++++++++++++++++++++++正文++++++++++++++++++++++++++++++++++++++1.Linux文件的扩展名: 一谈到文件类型,大家就能想到Windows的文件类型,比如file.txt.file.doc.file.sys.file.mp3.file.exe等,根据文件的后缀就能判断文件的类型.但在Linux一个文件是…
转摘网址为:http://www.cnblogs.com/fengyv/archive/2012/08/10/2631313.html Linux下文件的类型是不依赖于其后缀名的,但一般来讲:    .o,是目标文件,相当于windows中的.obj文件    .so 为共享库,是shared object,用于动态连接的,和dll差不多    .a为静态库,是好多个.o合在一起,用于静态连接    .la为libtool自动生成的一些共享库,vi编辑查看,主要记录了一些配置信息.可以用如下命令…
如无其它说明,本文所指Linux均表示2.6内核Linux,GCC编译器,Windows均表示Windows XP系统,Visual Studio 2005 sp1编译环境. 下面大概分几个方面进行罗列: Linux要包含 [cpp] #include <sys/socket.h>   #include <netinet/in.h>   #include <netdb.h>   #include <arpa/inet.h>  等头文件,而windows下则是…
linux是一个文件型操作系统,在linux下一切皆文件. 目录.字符设备.块设备.管道.套接字.符号连接文件等在linux下统统都是文件. linux下的文件类型分为以下几种类型: 1. 正规文件, 2. 目录, 3. 字符设备, 4. 块设备, 5. 套接字文件, 6. 管道, 7. 符号链接文件. 目前我知道有两种方法查看文件类型: 1. 使用ls -l进行查看, 2. 使用stat命令进行查看 sh-# ls -l /tmp/file.txt -rw-r--r-- 1 root root…
如无其它说明,本文所指Linux均表示2.6内核Linux,GCC编译器,Windows均表示Windows XP系统,Visual Studio 2005 sp1编译环境. 下面大概分几个方面进行罗列: Linux要包含 [cpp]  #include <sys/socket.h>    #include <netinet/in.h>    #include <netdb.h>    #include <arpa/inet.h>   等头文件,而windo…
Linux中的shell命令一般是执行步骤:用户在终端输入命令回车,系统内核会在当前用户的环境变量PATH中去读取环境变量的值 变量的值就是命令的路径,命令路径不只一个,于是系统会从这些路径中从左至右的顺序匹配要查找的命令文件,直到找到并执行为止:当这个命令被执行过已后,系统会把这个命令对应的文件路径保存在系统的哈希表中,以便下次用户执行命令时更快速的查找,查看当前用户的 hash 表.可以执行系统内置命令 hash 显示当前用户的哈希表.我们用which获取命令所在的路径,用type判断命令是…
)头文件 windows下winsock.h或winsock2.h linux下netinet/in.h(大部分都在这儿),unistd.h(close函数在这儿),sys/socket.h(在in.h里已经包含了,可以省了) 2)初始化 windows下需要用WSAStartup启动Ws2_32.lib,并且要用#pragma comment(lib,"Ws2_32")来告知编译器链接该lib. linux下不需要 3)关闭socket windows下closesocket(...…
有了我传的那个资料,这个就没什么用了,那个太经典了,这个就是记录我自己的实践.:-) linux下文件的类型是不依赖于其后缀名的,但一般来讲:.o,是目标文件,相当于windows中的.obj文件.so 为共享库,是shared object,用于动态连接的,和dll差不多.a为静态库,是好多个.o合在一起,用于静态连接.la为libtool自动生成的一些共享库,主要记录了一些配置信息. 1.创建静态.o库文件和.a库文件 [root@localhost study]# mkdir libtes…
通过Live555交叉编译后运行发现,上面实现的流媒体实时通过文件服务器的文件点播,没有相关的流媒体实现方式, 但在Linux下,可以通过某些技巧实现Live555服务器实时流媒体服务器,并且是傻瓜式的,简易程度不需要修改Live555下面一行代码. 首先,需要编译/交叉编译Live555服务器,这里可以参考一篇文章 http://blog.csdn.net/lawishere/article/details/8182952 源代码在这 一下讨论所有路径均在原生Live555源码包解压后的liv…
Linux的文件系统 根文件系统(rootfs) root filesystem LSB,FHS:(FileSystem Heirache Standard) /etc,/usr,/var,/root,/home,/dev /boot:引导文件存放目录,内核文件(vmlinuz).引导加载器(bootloader,grub)都存放于此目录; /bin:供所有用户使用的基本命令:不能关联至独立分区,OS启动即会用到的程序; /sbin:管理类的基本命令:不能关联至独立分区,OS启动即会用到的程序;…
测试环境:VMware Workstation / centos7 1.磁盘分区 (1)易于管理和使用: 比如说我们把磁盘分了sda1.sda2.sda3.sda4盘,我们假设sda1盘为系统盘,其他的比如说游戏.办公.软件盘,这样我们要重新分哪个区就直接在对应的盘分就可以了,不需要整块磁盘进行分区.根据用途我们也能较快的去使用相应的磁盘. (2)有利于数据的安全: 通过分区可以降低数据损失的风险.出现硬盘坏道.错误操作.重装系统都有可能造成数据损失,如果分区了,那么我们就可以将损失最小化. (…
已经存在kettle的一个资源库enfo,在目录/works/wxj下面有一个job (testmailsuccess.kjb)如何实现手工在kettle外部执行此job和让系统每天定时的调用此job. 进入linux系统,切换至kettle所属用户(确保kettle已经在linux系统上配置OK) 配置OK体现: A:进入目录执行 ./kitchen.sh 有帮助信息 B:kettle所属用户(我这里kettle在cognos用户里面配置的)根目录下有.kettle文件夹(和windows内容…
Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar XXX.jar & &代表在后台运行. 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行. 继续改进,如何让窗口关闭时,程序仍然运行? 方式三 nohup java -jar XXX.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭时,…
linux下利用elk+redis 搭建日志分析平台教程 http://www.alliedjeep.com/18084.htm   elk 日志分析+redis数据库可以创建一个不错的日志分析平台了,下面我们来看一篇在linux下利用elk+redis 搭建日志分析平台教程,希望例子对各位有帮助. 这个是最新的elk+redis搭建日志分析平台,今年时间是2015年9月11日. Elk分别为 elasticsearch,logstash, kibana 官网为:https://www.elas…
1. 以超级用户权限登陆Linux,进入  /lib/modules/2.6.32--504.el6.x86_64/kernel/fs目录执行 ls 命令(不同Linux发行版本的Fs目录有些不同你可以用查找FS文件夹的方法找到它).如下图所示: 这里我们对最常用的几个文件系统的发展情况和优缺点作详细介绍:ext.ext2.ext3.jsf. .xfs.ReiserFS 2.ext是第一个专门为Linux的文件系统类型,叫做扩展文件系统.它在1992年4月完成的.它为Linux的发展取得了重要作…
Linux下查看当前内核系统支持的文件系统: 一般都在 /lib/modules/kernl-version/kernel/fs/ 目录下包含了当前内核版本支持的文件系统: ls /lib/modules/kernl-version/kernel/fs/ eg: v0id@v0id-eof ~ $ ls /lib/modules/3.11.0-12-generic/kernel/fs/ 9p    afs      bfs             cachefiles  coda      dl…
http://blog.sina.com.cn/s/blog_62e7fe670101dg9d.html linux下二进制文件查找: strings 0000.ts | grep -o "T"  | wc -l grep _initcall_.*1$ ./aa > a1 2982  find . -regex '.*\.c|.*\.cxx|.*\.cpp|.*\.h' 2983  find . -regex '.*\.c\|.*\.cxx\|.*\.cpp\|.*\.h' 29…
嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误 2015-05-27 14:19 184人阅读 评论(0) 收藏 举报  分类: 嵌入式(928)  一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的. 在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈. int backtrace(voi…
linux下的ioctl函数原型如下: #include <sys/ioctl.h> int ioctl(int handle, int cmd, [int *argc, int argv]) 函数成功返回0,失败返回-1. 其相关命令接口如下: 类别 Request 说明 数据类型 套 接 口 SIOCATMARK SIOCSPGRP SIOCGPGRP 是否位于带外标记 设置套接口的进程ID 或进程组ID 获取套接口的进程ID 或进程组ID int int int 文 件 FIONBIO…
原文地址:http://www.cnblogs.com/firtree/p/4028354.html linux下利用openssl来实现证书的颁发(详细步骤) 1.首先需要安装openssl,一个开源的实现加解密和证书的专业系统.在centos下可以利用yum安装. 2.openssl的配置文件是openssl.cnf,我们一般就是用默认配置就可以.如果证书有特殊要求的话,可以修改配置适应需求.这样必须把相关的文件放到配置文件指定的目录下面. 3.首先需要利用openssl生成根证书,以后的服…
Linux下,如果想要删除目录及其子目录下某种类型文件,比如说所有的txt文件,则可以使用下面的命令: find . -name "*.txt" -type f -print -exec rm -rf {} \; . : 表示在当前目录下 -name "*.txt" 表示查找所有后缀为txt的文件 -type f 表示文件类型为一般正规文件 -print 表示将查询结果打印到屏幕上 -exec command command为其他命令,-exec后可再接其他的命令来…
最近认真学习了下linux下堆的管理及堆溢出利用,做下笔记:作者作为初学者,如果有什么写的不对的地方而您又碰巧看到,欢迎指正. 本文用到的例子下载链接https://github.com/ctfs/write-ups-2014/tree/master/hitcon-ctf-2014/stkof 首先总结一下linux下堆的分配管理.堆的基本结构见上一篇文章,这里不再赘述. 一个更详细总结的传送门 glibc内存管理ptmalloc源码分析 1.堆区是在进程加载时的一片区域,mmap方式分配的堆结…