Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux中使用flock函数

Linux中使用flock函数

多进程写文件操作一般要求互斥,这需要使用flock函数来获得文件锁。下面是一个使用该函数的例子。程序流程:尝试获得文件互斥锁如果获得成功,等待10秒,此时可以运行当前程序的另一个实例,观察是否可以再次获得文件锁如果获取不成功,则直接退出。这里需要指定LOCK_NB参数,否则flock会阻塞进程直到得到了文件锁lockfile.cpp代码:#include <fcntl.h>#include <unistd.h>#include &l...
剖析 PostgreSQL 的 CVE-2013-1899 安全漏洞

剖析 PostgreSQL 的 CVE-2013-1899 安全漏洞

上个周,Postgresql团队对它旗下的著名开源RDBMS发布了一个安全方面的更新,一切看起来都像往常一样…… 但是这条更新却引起了人们的极大关注,主要是因为在补丁发布前一周,Postgres开发者在pgsql-hackers邮件列表( http://www.postgresql.org/message-id/14040.1364490185@sss.pgh.pa.us)中发布了一个令人震惊的消息,说即将发布的新版本中包含了...
Linux中多线程的实现

Linux中多线程的实现

所谓的多线程就是多个函数同时执行。一般将线程表述为一个api加一个函数。线程函数有特定的格式要求,以便系统自动调用。Windows进程包含多个线程,进程是分配资源(包括CPU)的最小单位,而线程是调度的最小单位。Linux中的进程和线程关系应该和Windows一样,而且在Linux中创建多线程程序和Windows一样简单。下面是一个多线程实例,程序流程是这样的:进程启动,创建一个线程线程和主进程都每个一段时间输出一些信息,二者并发执行下面的代码编译于Ubu...
C语言的神奇语法

C语言的神奇语法

C语言的语法较其他语言来说比较复杂。这里举几个我碰到过的例子,证之。例子1int a[10];printf( "%d-%d", a, & a);猜测:这里的&会被编译器忽略。a在内存中是不存在的,内存中的是a[0] a[1]....a[9],上述printf打印的a在编译的时候就被替换成了a在内存中的地址。因为a是概念上的,而非内存中的,所以自然不存在地址,也就无法对它使用取址符。但是编译器很聪明,会忽略&。例子2struct a{...
用Python脚本整理我的音乐

用Python脚本整理我的音乐

我的所有音乐都放在一个music文件夹里面,包括QQ音乐、酷狗、千千下载的音乐,和他们的缓冲文件等,比较杂乱。我想把所有音乐文件拷出来,但是因为里面有上百个文件夹,音乐文件分布很杂乱,工作量太大,所以就写了一个Python脚本来处理。下面是脚本代码:# 功能:将本程序所在目录下的所有的音乐文件移动到一个指定的文件夹中import osimport shutil# 配置storeDir = "G:\music"if os.path.exists( store...
Linux程序移植到Android上

Linux程序移植到Android上

序言:由于本人还是比较偏重于先说明原理在说明实际操作步骤,要知其然更要知其所以然,如下图所示:传统的linux系统中的程序基本都依赖于glibc(至于什么是glibc可以百度去),而右边AOSP(Android Open-Source Project)的程序基本都是依赖于Bionic(由谷歌公司开发类库,用来替代glibc)。这就决定了要想移植linux上的程序到android上就必须解决这个依赖的类库不同的问题。一般情况下,有两种方法。一个就是将程序静态...
Linux下用arm-none-linux-gnueabi交叉编译arm内核模块

Linux下用arm-none-linux-gnueabi交叉编译arm内核模块

前不久导师要求交叉编译一个基于arm平台开发的内核模块来练手,在网上查了很多资料才弄出来,于是将这些零散的信息综合起来给和我一样的入门人员了解。水平有限,请谅解~1.安装arm-none-linux-gnueabi交叉编译器很多时候我们需要编译运行在其他平台的文件,而没有条件在目标平台上直接编译时,我们就用到了交叉编译。顾名思义就是在现有平台编译目标平台的程序。在Linux编译arm平台的内核模块时,大多采用arm-none-linux-gnueabi交叉...
<< 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 >>