Unix/Linux/BSD
文章平均质量分 68
pcliuguangtao
喜欢C/C++,有着黑客梦想,喜欢结交有志之士~~
展开
-
Ubuntu软件安装方法完全指南
<br /> 刚开始使用Ubuntu的用户时常有这样的问题,我要安装新软件怎么办?.exe文件在哪里,怎么软件有这么多格式?RPM包,.tar.gz是什么?怎么就是安装不了啊?等等等等. 的确,在Windows下安装文件只需要双击即可,所以很多人在Ubuntu下觉得很不习惯.事实上,使用Ubuntu平台下的新利得软件包管理器安装大部分软件比在Windows平台下更加简单,操作更加容易.当然,也有很多软件Ubuntu的储藏库里面没有,而这些软件有着各式各样的格式,因而安装方法也都不一样.下面我转载 2010-09-06 23:41:00 · 717 阅读 · 0 评论 -
Linux消息队列编程实例
/* 创建消息队列msgget( ) 调整消息队列的参数msgctl(msgid,IPC_SET,struct msqid_ds* ) 发送一条消息msgsnd( ) 接受一条消息msgrcv( ) 移除一条消息msgctl( msgid,IPC_RMID,NULL ) *//*创建一个消息队列,并调整其大小,发送一条消息 再取出该条消息,最原创 2011-06-03 13:23:00 · 1458 阅读 · 0 评论 -
Linux旗语编程实例
/*旗语是一个受保护的变量。对两个或多个进程共享的资源,它可以提供限制访问的方法。 Linux的旗语就是操作系统原理中的信号量,有PV操作。可以获得和释放旗语; 释放旗语会自动唤醒下一个等待获取旗语的进程。 旗语有两种类型: 二进制旗语:代表单个资源 计数旗语:用来代表数量大于一的共享资源 GNU/Linux中的旗语实际上是一个旗语数组。说是一个旗语原创 2011-06-03 13:27:00 · 2184 阅读 · 0 评论 -
Linux进程编程实例
<br /><br />/*GUN/Linux进程有两种基本类型:内核线程和用户进程(注意一个是线程一个是进程)。 用户进程由fork()和clone()创建。内核线程是由内核中的kernel_thread()创建。 使用fork()创建子进程的时候,系统为它复制了父进程使用的内存部分映像,但是开始时他们都指向同一块内存, 但是把内存页面标记为copy-on-write。当任何一个进程试图向这些内存中写入数据时,就会产生一组新的内存页面由这个进程私有。 这提高了创建新进程的效率,因为原创 2011-06-01 22:44:00 · 707 阅读 · 0 评论 -
Linux共享内存编程实例
/*共享内存允许两个或多个进程进程共享同一块内存(这块内存会映射到各个进程自己独立的地址空间) 从而使得这些进程可以相互通信。 在GNU/Linux中所有的进程都有唯一的虚拟地址空间,而共享内存应用编程接口API允许一个进程使 用公共内存区段。但是对内存的共享访问其复杂度也相应增加。共享内存的优点是简易性。 使用消息队列时,一个进程要向队列中写入消息,这要引起从原创 2011-06-04 15:44:00 · 32956 阅读 · 5 评论 -
Ubuntu使用笔记 1
<br /> <br />1、查看操作系统输出的启动信息:<br />dmesg >boot.msg 或者 less /var/log/messages<br />如果我们需要某人帮助调试系统问题,我们可以把生成的boot.msg文件发送给他。<br />另外,当我们修改某一配置文件的时候,要先备份:<br />cp file file.backup<br />恢复:<br />cp file.backup file<br /> <br />2、更智能的dist-upgrade<br />首先, apt-原创 2011-04-22 23:09:00 · 705 阅读 · 0 评论 -
Ubuntu使用笔记2--X window
<br /><br />1、xorg.conf的文件元素介绍<br />Ubuntu 10.10中的X配置文件位于/ect/X11/xorg.conf中,注意并不是下面的所有模块都存在与xorg.conf中,下面就介绍一下各节的内容:<br />ServerLayout--定义显示配置,定义一个或多个屏幕布局,以及制定输入设备;<br />Files--定义颜色、字体的位置或字体服务器的端口号;<br />Module--告诉X服务器要加载那个图形显示支持代码模块,也就是显卡驱动;<br />InputDe原创 2011-04-24 12:37:00 · 1167 阅读 · 0 评论 -
对于系统编程的学习是 选择windows还是linux?
<br /><br />对于系统编程的学习是 选择windows还是linux?<br /> <br />linux系统编程之所以看起来很简单,是得益于Linux系统本身并不包括窗口管理系统(ex:GNOME/KDE),所以,那些介绍linux系统编程的书,对于每一个部分都很清晰:文件,进程,socket等。我们在进行学习的时候可以不用像在Windows下关心窗口怎样创建,各个控件之间怎样交互那样复杂,所以,想要熟悉操作系统的话我们可以参看linux下系统的编程,另外,由于linux系统的可定制性十分优秀,原创 2011-04-25 23:48:00 · 6497 阅读 · 0 评论 -
我的Fedroa15安装过程问题总结
1、进行更新的时候出现PMDB altered outside of yum解决方法:sudo yum clean all2、今天在一台CentOS服务器上执行一个yum命令时,居然报错yum install apr错误提示:GPG key retrieval failed: [Errno 14] HTTP Error 404: Not Found后来在ChinaUnix上找到解决办法,这里笔记一下yum install apr --nogpgchec3、更新系统时出现如下问题,导致更新失败:GPG key原创 2011-05-06 16:48:00 · 2560 阅读 · 2 评论 -
yum介绍
一、 yum 的使用;有些初学Linux的弟兄可能问,为什么不用系统自带的图形化工具up2date来升级,却要用 yum呢。其实大家用一用就知道了,up2date 真是奇慢无比,而且经常失去响应;造成机器假死的情况。所以我们还是试一试yum ;另外freshrpms.net 可能比官方站更快的更新升级源,也没有理由不用 yum;注:yum优点:软件包依赖关系自行解决,比如上面的,我们可以看到本来我们只安装的是bmp-mp3,结果yum 安装也安装了 id3lib ;bmp。 Fedroa 15已经默认安装原创 2011-05-06 16:56:00 · 796 阅读 · 0 评论 -
Linux C 线程同步实例分析(二)
这是一个使用条件变量的例子,后面的附图很清楚的说明了整个过程中互斥量的加锁和解锁的过程。/**条件变量使用例程*/#include #include #include #include static pthread_mutex_t lock=PTHREAD_M原创 2011-09-02 22:44:49 · 1666 阅读 · 0 评论 -
Linux C 线程同步实例分析(一)
先举出一个同步的经典例子,生产者消费者. 让我感到欣慰的是在这个代码中,我看到了《OS原理》中PV原语的实现,挺激动的。/**简单的生产者 消费者模型*/#include #include #include #include #include #include原创 2011-09-02 22:39:08 · 2280 阅读 · 3 评论 -
Linux C 线程同步实例分析(三)
/**此文件用于展示多个线程同时访问临界资源,产生的意想不到的结果*/#include #include #include void* pthread_proc(void* arg){ int id=*(int*)arg; prin原创 2011-09-02 22:46:13 · 990 阅读 · 0 评论 -
Shell IF判断语句
目录7.1. 介绍if7.1.1. 概要7.1.2. if的简单应用7.2. 更多if的高级使用方法7.2.1. if/then/else结构7.2.2. if/then/elif/else结构7.2.3. if嵌套语句7.2.4. 布尔操作7.2.5. 使用exit语句和if7.3. 使用case语句7.3.1. 简单的条件7.3.2. 初始脚本例子7.4. 总结7.转载 2012-02-03 15:51:02 · 2821 阅读 · 0 评论 -
英文ubuntu系统中emacs输入中文
原来安装emacs的时候,由于是选择的英文系统,所以,不能在打开的emacs中输入中文,在网上搜索的一个折中的方法是在$HOME/.bashrc中添加一行:alias emacs="export LC_CTYPE=zh_CN.UTF-8;emacs";这样的话,只要是在terminal中打开的emacs都可以输入中文,但是其他的方式就不行。(我用的是fcitx输入法,并且要注意在l原创 2011-03-21 14:22:00 · 8802 阅读 · 0 评论 -
利用 libevent 实现简单 http client GET、POST
/* Base on code from: http://archives.seul.org/libevent/users/Sep-2010/msg00050.html */#include "MITLogModule.h"#include #include #include #include #include #include #include #include /原创 2013-07-17 21:06:24 · 23350 阅读 · 5 评论 -
Linux线程编程实例
<br /><br />/* 2.4GNU/Linux内核的POSIX线程库基于Linux进程实现(于1996年问世),在GNU/Linux进程模型的基础上构建的。 2.6内核使用了新的本地POSIX线程库,或称为NPTL(于2002年引入),比旧库有了很多改进,执行效率更高。 要想知道正在使用的是那个P(POSIX)线程库,可以使用如下命令: getconf GNU_LIBPTHREAD_VERSION 自己使用的为:NPTL 2.13.90 线程和进程的区别:原创 2011-06-01 22:50:00 · 917 阅读 · 0 评论 -
C/C++consloe 中动态显示进度
<br />源自我的一个问题:http://topic.csdn.net/u/20110409/23/57e20e2c-4700-4853-82f6-fe3d135d7305.html?seed=539710984&r=72676818#r_72676818<br /> <br /><br />#include <stdio.h><br />#include <stdlib.h><br />int main()<br />{<br /> printf("Hello world!/n");<br /> for原创 2011-04-10 13:05:00 · 1611 阅读 · 0 评论 -
Ubuntu 环境变量
<br />环境变量配置文件<br />在Ubuntu中有如下几个文件可以设置环境变量<br />1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。<br />2、/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。<br />3、~/.bash_profile:在登转载 2010-09-07 23:28:00 · 493 阅读 · 0 评论 -
网络字节序与主机字节序
因为看到winsocket,所以在网上找了一下资料: 来自:http://www.cnblogs.com/jacktu/archive/2008/11/24/1339789.html 不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序 最常见的有两种 1. Little endian:将低序字节存储在起始地址 2. Big endian:将高序字节存储在起始地址 LE little-endian 最符合人的思维的字节序 地址原创 2010-10-04 21:00:00 · 627 阅读 · 0 评论 -
linux下怎样处理丢失的root密码
<br />如果你丢失了root密码,我们可以采用一下方法来尝试一下:<br />一、用启动盘启动,挂在本地硬盘,然后修改/etc/psaawd和/etc/shadow文件。<br />在老的unix系统上。密码存放在/etc/passwd文件中,但在一些新的系统中,处于安全原因把密码转移到只有根用户才能访问的/etc/shadow文件中,以防止非root用户访问加密的用户密码。多数使用本地身份验证的linux系统把密码存放在/etc/shadow文件中,但有些系统仍然使用/etc/passwd作为工件,或原创 2011-02-27 14:05:00 · 1840 阅读 · 0 评论 -
link之软/硬链接
<br />今天下载了eclipse c/c++开发软件包,解压以后可以直接使用,但是最好能实现用命令打开,所以,就要在path路径里包含他的文件路径,与其添加一个搜索路径倒不如使用现有的,所以对他做了一个链接到/usr/bin/目录里面。<br />第一次命令是:link /usr/eclipse/eclipse /usr/bin/eclipse<br />然后命令行输入eclipse提示无法加载程序项,<br />第二次命令:link -s /usr/eclipse/eclipse /usr/bin/e原创 2011-02-27 14:45:00 · 1038 阅读 · 0 评论 -
摘要
<br /><br />http://linuxtoy.org/archives/archlinux-guide.html<br /> <br />(今年寒假看的,做个摘要)<br /> <br />1、GUN<br /> GUN's Not Unix<br />2、reverse:反转<br /> recursive:递归<br /> verbose : 冗长<br />3、Linux 并不是一个完整的系统,他只是内核。一个完整的系统。是包含内核在内的一系列软件工具包。<br /> UNI原创 2011-02-19 16:46:00 · 1053 阅读 · 0 评论 -
linux用实时信号发送数据
<br />////////////////////////////////////////////////////<br />//本例是一个用信号发送数据元素的例子<br />//可以使用 man sigqueue 获得更多信息<br />//siginfo_t结构允许发送的信号带有一个单独的数据(这个元素可以是一个指针,从而间接传递任意大小的数据 ),要用 union sigval<br />//sigqueue()可以传送带有数据的消息到指定的进程。要生成一个带有union sigva原创 2011-03-10 18:00:00 · 1104 阅读 · 0 评论 -
我的ubuntu系统软件列表
<br /><br />7zip压缩软件<br />apt-get install p7zip-full convmv<br /> <br />微软免费字体<br />sudo apt-get install msttcorefonts<br /> <br />安装ubuntu-tweak 和ailure<br /> <br />字典stardict安装,并把字典文件拷贝到<br />/usr/share/stardict/dict/里面<br /> <br />安装gun paint<br /> <br原创 2011-03-20 00:18:00 · 1065 阅读 · 0 评论 -
linux--查明不能卸载分区的原因
<br /> <br />当我们执行:sudo umount /mnt/music的时候如果出现device is busy!是很令人尴尬的。我们要找出内部的原因。<br />umount提供了一个 -l 的选项,可以让你卸载那些正在使用中的设备。<br />这里介绍两个命令fuser(find user)和lsof(list open file);<br /> <br />发现使用文件系统的进程:<br />fuser------identify processes using files or soc原创 2011-03-24 22:40:00 · 3262 阅读 · 1 评论 -
经典实例演示C++对象构造
<br /> <br />#include <iostream><br />#include <string><br />#include <vector><br />using namespace std;<br /> <br />struct X<br />{ //simple test class<br /> int val;<br /> void out( const string& s,int nv )<br /> {<br /> cerr<<this<<"->"<<s原创 2011-03-25 12:36:00 · 721 阅读 · 0 评论 -
Linux性能检测
<br /> <br />1、 top<br />top命令会定时刷新显示系统当前正在运行的进程,并按照资源占用率进行排序列出;<br />其中NI表示nice值,标志这进程的的优先级,可意在top命令中按“R”来修改本进程的nice值;<br />PR表示进程的优先级,内核是基于优先级来调度作业的。<br />修改nice值可以在保证不结束进程的情况下缓和系统压力。<br />更多可见:man renice <br />根用户可以修改任意进程的nice值,-20<nice<20,值越小代表优先级越高,20原创 2011-03-24 22:38:00 · 787 阅读 · 0 评论 -
Linux管道编程实例
<br /><br />/*管道 可以把管道想象为两个实体之间的单向连接器。注意,管道是半双工的, 如果需要全双工通讯,应该转而考虑套接字。 匿名管道又称管道,提供了一个进程与它的兄弟进程通讯的方法,只存在于父进程中; 命名管道,可以存在与文件系统中,任意进程都可找到它,使得不同先祖的进程也可以通讯。 #include <unistd.h> int pipe( int dfs[ 2 ] );创建匿名管道 int dup(int oldfd );创建一个文件描述符的副原创 2011-05-29 23:16:00 · 3681 阅读 · 0 评论 -
Linux进程编程实例
<br /><br />/*GUN/Linux进程有两种基本类型:内核线程和用户进程。 用户进程由fork()和clone()创建。内核线程是由内核中的kernel_thread()创建。 使用fork()创建子进程的时候,系统为它复制了父进程使用的内存部分映像,但是开始时他们都指向同一块内存, 但是把内存页面标记为copy-on-write。当任何一个进程试图向这些内存中写入数据时,就会产生一组新的内存页面由这个进程私有。 这提高了创建新进程的效率,因为内存空间的复制推迟到发生写操原创 2011-05-30 17:03:00 · 2212 阅读 · 4 评论 -
Linux文件编程实例
<br /><br />//捕获fopen调用中的错误#include <stdio.h>#include <errno.h>#include <string.h>#define MYFILE "missing.txt"int main( ) { FILE* fin; fin=fopen( MYFILE,"r" ); if( fin==(FILE*)NULL ) {原创 2011-05-27 12:49:00 · 1009 阅读 · 0 评论 -
Unix - Shell Substitution --- shell 置换语法
Unix - Shell SubstitutionFROM: http://www.tutorialspoint.com/unix/unix-shell-substitutions.htmWhat is Substitution?The shell performs substitution when it encounters an expression that c转载 2013-08-13 16:08:44 · 1774 阅读 · 0 评论