Linux

Linux 多线程应用中如何编写安全的信号处理函数

在开发多线程应用时,开发人员一般都会考虑线程安全,会使用pthread_mutex去保护全局变量。如果应用中使用了信号,而且信号的产生不是因为程序运行出错,而是程序逻辑需要,譬如SIGUSR1、SIGRTMIN等,信号在被处理后应用程序还将正常运行。在编写这类信号处理函数时,应用层面的开发人员却往往忽略了信号处理函数执行的上下文背景,没有考虑编写安全的信号处理函数的一些规则。本文首先介绍编写信号处理函数时需要考虑的一些规则;然后举例说明在多线程应用中如何构

系统 2019-08-29 22:23:03 1673

Linux

Linux任务前后台的切换

Linux任务前后台的切换Shell支持作用控制,有以下命令实现前后台切换:1.command&让进程在后台运行2.jobs查看后台运行的进程3.fg%n让后台运行的进程n到前台来4.bg%n让进程n到后台去5.kill%n杀死jobPS:"n"为jobs命令查看到的job编号,不是进程编号.fg、bg、jobs、&、ctrl+z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的.一、&最经常被用到这个用在一个命令的最后,可以

系统 2019-08-12 01:33:52 1673

Linux

Linux学习笔记6——映射虚拟内存

使用到两个函数mmap:用于分配内存;munmap:用于释放内存。mmap的原型如下:void*mmap(void*start,//指定映射的虚拟地址0由系统指定开始位置size_tlength,//映射空间大小pagesize倍数intprot,//映射权限PROT_NONE|PROT_READPROT_WRITEPROT_EXECintflags,//映射方式intfd,//文件描述符号offset_toff//文件中的映射开始位置(必须是pagesi

系统 2019-08-12 01:32:51 1673

Linux

Linux学习笔记21——线程同步的两种方式

一用信号量同步1信号量函数的名字都以sem_开头,线程中使用的基本信号量函数有4个2创建信号量#includeintsem_init(sem_t*sem,//指向信号量结构的一个指针intpshared,//控制信号量的类型,如果其值为0,就表示这个信号量是当前进程的局部信号量,否则,这个信号量就可以在多个进程之间共享unsighedintvalue//信号量的初始值);这个函数初始化由sem指向的信号量对象,设置它的共享选项,并

系统 2019-08-12 01:32:45 1673

Linux

linux下摄像头图像数据的获取

2.6.32内核,V4L2架构亲自测试可用在友善之臂MINI2440开发板上测试可用源程序如下#include#include#include#include#include#include#include#include#include#include#inc

系统 2019-08-12 01:32:39 1673

Linux

linux touch

功能描述:touch可以修改文件的access/modify/change时间戳。当输入的文件参数代表的文件不存在的时候,touch会create一个空的文件,并以当前最新的时间戳来标记。所以touch主要有2个功能:创建一个新的空白文件修改已经存在的文件的时间戳,包括access,modify,change.命令:touch[-acm][-rref_file(参照文件)|-ttime(时间值)]file(文件名)...GNU版本:touch[-acfm]

系统 2019-08-29 22:32:47 1672

Linux

NVIDIA-Linux-x86-180.16-pkg1 驱动的升级安装

关于Nvidia显卡驱动在Linux上面的安装,网上已经有很多的文章了。不过感觉都是只有大量的步骤,缺少的一些前因后果的描述。导致了很多朋友不能很好的针对自己系统特性进行安装。在这里我就结合我的实际体验来给大家讲一下Nvidia显卡驱动的安装。在这之前,大家务必要拢清楚自己的系统环境。我的系统环境写道Ubuntu8.04.1LinuxKernel2.6.24-22-generic#1SMPMonNov2418:32:42UTC2008i686GNU/Lin

系统 2019-08-29 22:07:17 1672

Linux

(原创)第一章 Introduction to the Linux Ker

一直对linux内核很感兴趣,早就想深入的学习下,由于自己目前的水平还比较菜,所以在blog中记录下学习中的心得和体会,一则自己做一个记录,同时也可以督促自己的学习进度;二来可以抛砖引玉,希望和我一样对内核有兴趣的朋友们多多指点,共同进步。[第一章]IntroductiontotheLinuxKernel主要是一些概述性的内容,主要包括:1、Unix和Linux发展的背景和历史,这部分没有什么可说的,作为常识了解吧。2、操作系统和内核概述(1)内核主要组件

系统 2019-08-29 22:05:30 1672

Linux

盗梦空间现实版:Linux正盗走Windows美梦

Linux一直试图在桌面操作系统上与Windows一决高低,但是多年来赢取的市场份额非常有限。事实证明,除去PC桌面,Linux还有很多可以争取的市场空间。随着近期,诺基亚Maemo与英特尔Moblin项目合并后推出MeeGo操作系统,谷歌Android操作系统在智能手机市场取得的进展,这些基于Linux平台的自由软件接连迸发,无疑都让人欢欣鼓舞。同时,KDE这个14年来伴随着Linux走进普通用户电脑桌面的图形桌面,也迎来了革命性的时刻。在2010年,K

系统 2019-08-29 22:05:11 1672

Linux

Linux 解决SQL Developer 显示乱码

1、找到jdk的安装路径,在jdk安装路径下有个fonts目录,如我的jdk安装路径为/usr/soft/jdk1.6.0_26/jre/lib/fonts到fonts目录下新建文件夹fallbackcd/usr/java/jdk1.6.0_24/jre/lib/fontsmkdirfallback进入到fallback目录下,cdfallback2、查询本地系统使用的中文字体#find/-name*.ttc/usr/share/fonts/wqy-zen

系统 2019-08-12 01:53:21 1672

Linux

linux oracle配置开机启动

参考:http://jingyan.baidu.com/article/b2c186c8fe4306c46ef6ff16.html先以root身份登录到linux系统,1.修改vi/etc/oratab文件进入vi编辑器后,找到对应实例所在的行,这里我们以orcl这个实例进行讲解:“orcl:/u01/app/oracle/product/12.1.0/dbhome_1:N”,改为“orcl:/u01/app/oracle/product/12.1.0/d

系统 2019-08-12 01:52:58 1672

Linux

Linux释放内存

在Linux系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好。但是凡事也有例外,有的时候内存会被缓存占用掉,导致系统使用SWAP空间影响性能,此时就需要执行释放内存(清理缓存)的操作了。Linux系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的转换)、BufferCache(针对磁盘块的读写)和PageCache(针对文件inode的读写)进行缓存操作。但是在进行了大量文件操作之后,缓存会把内存资源基

系统 2019-08-12 01:33:35 1672

Linux

《鸟哥的Linux私房菜》学习笔记(5)——权限管

一、权限的基本概念权限:访问计算机资源或服务的访问能力。Linux中,每一个资源或者服务的权限,分别定义了三组用户的使用能力。文件的属主(u)文件的属组(g)其他用户(o)对于每一类用户来说,可以对某个文件有三种权限:r:可读,可以使用类似cat,more,less等命令查看文件内容。w:可写,可以编辑或者删除此文件。x:可执行,可以在命令提示符下,当做命令提交给内核运行,一般对文件默认没有此权限,否则可能执行恶意代码。对于目录来说,r:可以对此目录执行l

系统 2019-08-12 01:33:20 1672

Linux

Linux下gftp中文显示乱码的解决方法

默认设置下用gftp访问ftp站点时,有时会出现中文乱码,解决方法是在选项中,"General"里的"RemoteCharacterSets(远端字符集)"中添加"gb2312;"即可正常访问。彻底解决:更改/usr/bin/gftp第二行加入exportLANG=zh_CN.GBK后要sudolocale-genzh_CNsudorm-rf~/.gftp现在在命令行里面启动gftp中文显示就没问题了,如果在菜单里面启动gftp,还需要:把“gFTP属性"

系统 2019-08-12 01:33:14 1672