
Linux学习笔记
文章平均质量分 65
changli_90
这个作者很懒,什么都没留下…
展开
-
在Debian中打造属于自己的deb包
问题:如果你要在Debian系统中发布一款软件或者一个包,该如何做呢?如果你的项目中有各种二进制包,该如何维护呢?如果你自己做了一款小小的实用软件,该如何与朋友分享呢?。 案例:假如我从网上下载了eclipse-SDK-3.1-linux-gtk.tar.gz压缩文件,我想把他安装到/opt/eclipse目录下,且菜单Apps——>Programming中有Eclipse菜单项。并转载 2013-05-09 16:10:13 · 755 阅读 · 0 评论 -
Linux/Unix下pid文件作用浅析
在Linux系统的目录/var/run下面一般我们都会看到很多的*.pid文件。而且往往新安装的程序在运行后也会在/var/run目录下面产生自己的pid文件。那么这些pid文件有什么作用呢?它的内容又是什么呢?(1) pid文件的内容:pid文件为文本文件,内容只有一行, 记录了该进程的ID。用cat命令可以看到。(2) pid文件的作用:防止进程启动多个副本。只有获得pid文件(固定路径固定文原创 2013-05-10 15:35:38 · 30572 阅读 · 2 评论 -
Linux的XServer
Moblin Core是在Gnome Mobile的平台上建立。我以前玩Linux,提交的都和图像没有关系,连Xwindows都不用启动,开机后直接进入文本命令行,所以这方面了解得很少,需要学习一下,按照管理,进入共产主义网络来寻找答案。共产地址:http://topic.youkuaiyun.com/t/20061030/16/5119702.htmlhttp://402s.blogspot转载 2013-05-14 16:56:43 · 736 阅读 · 0 评论 -
关于SIGPIPE信号
我写了一个服务器程序,在Linux下测试,然后用C++写了客户端用千万级别数量的短链接进行压力测试. 但是服务器总是莫名退出,没有core文件.最后问题确定为, 对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程.具体的分析可以结合TCP的"四次握手"关闭. TCP是全双工的信道, 可以看作两条单工信道, TCP连接两转载 2013-05-14 17:24:21 · 689 阅读 · 0 评论 -
Linux/Unix下pid文件作用浅析
在Linux系统的目录/var/run下面一般我们都会看到很多的*.pid文件。而且往往新安装的程序在运行后也会在/var/run目录下面产生自己的pid文件。那么这些pid文件有什么作用呢?它的内容又是什么呢?(1) pid文件的内容:pid文件为文本文件,内容只有一行, 记录了该进程的ID。用cat命令可以看到。(2) pid文件的作用:防止进程启动多个副本。只有获得p转载 2013-05-14 16:25:26 · 535 阅读 · 0 评论 -
GDB基本命令(整合)
一、gdb调试基本知识a.调试器指示的是将要执行的代码行b.只有在编译时拥有调试符号(-g)的程序才能在调试时看到源码c.同一行上有多个断点时,gdb仅中断在断点号最小的那个断点上d.断点可以设置在同一程序的不同文件中e.在任何给定时间,gdb只有一个焦点,即当前“活动”的文件f.源文件改变后,断点发生移动,带式断点属性的行号不变二、GDB基本命令清单查询在 g转载 2013-06-04 15:10:32 · 669 阅读 · 0 评论 -
udev详解
如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs,一个基于内核的动态设备文件系统,他首次出现在2.3.46 内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建的设备文件是动态的。但转载 2013-06-05 17:34:34 · 1285 阅读 · 0 评论 -
linux下杀死进程(kill)的N种方法
常规篇: 首先,用ps查看进程,方法如下:$ ps -ef……smx 1822 1 0 11:38 ? 00:00:49 gnome-terminalsmx 1823 1822 0 11:38 ? 00:00:00 gnome-pty-helpersmx 1824 1822 0转载 2013-06-06 11:21:22 · 565 阅读 · 0 评论 -
Linux进程控制-fork函数-进程控制执行
3. 进程控制3.1. fork函数#include #include pid_t fork(void);fork调用失败则返回-1,调用成功的返回值见下面的解释。我们通过一个例子来理解fork是怎样创建新进程的。例 30.3. fork#include #include #include #include int main(void) {转载 2013-06-06 13:46:52 · 1195 阅读 · 0 评论 -
Linux 进程通信——本地套接字(1)
唉,从去年开始就和那该死的开发包作战,现在还没完全拿下!有些人和组织自以为自己水平很高,方法很好,弄出一些极其复杂难以掌握的开发包,实在令人郁闷和不齿!还是 OSEK 组织好,轻量级的 API 让人倍感亲切,颇有当年周郎“谈笑间,强虏灰飞烟灭”的意思,看来 David 投对胎了!哈哈,扯了这么多,再来写上一段,估计郁闷烦躁的心情就会变成“春风得意马蹄疾,一日看尽长安花”了!本地套接字的学名转载 2013-06-06 23:35:07 · 2606 阅读 · 0 评论 -
Linux 进程通信——本地套接字(2)
Linux和UNIX都拥有一个非常实用的工具--UNIX套接字,或称为本地套接字,它可以被用在进程间通讯(IPC)当中。UNIX套接字的运转机制和Internet套接字类似,主要的区别UNIX套接字只能用在一台计算机中,而Internet套接字则可以在不同的计算机之间使用。UNIX套接字定址的方式是作为本地文件系统里的一个文件。你可能会奇怪为什么要使用UNIX套接字而不使用常规的Inter转载 2013-06-06 23:35:55 · 5034 阅读 · 0 评论 -
linux setlocale用法
linux setlocale用法头文件与声明如下:1 #include 2 char* setlocale(int category, const char* locale);说明:category:为locale分类,表达一种locale的领域方面,通常有下面这些预定义常量:LC_ALL、LC_COLLATE、LC_CTYPE、LC_MES转载 2013-07-01 11:10:01 · 981 阅读 · 0 评论 -
2、Linux多线程,线程的分离与结合
(2)线程的分离与结合 在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我转载 2013-08-07 16:34:31 · 496 阅读 · 0 评论 -
1、Linux多线程,基本概念
说明:以下内容,根据参考中【1~6】内容整理而得。一、基本概念1、线程是计算机中独立运行的最小单位。进程是分配资源的单位。2、为什么使用多线程?(1)启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程转载 2013-08-07 16:33:54 · 538 阅读 · 0 评论 -
3、Linux多线程,线程同步
5)线程私有数据 进程内的所有线程共享进程的数据空间,因此全局变量为所有线程所共有。但有时线程也需要保存自己的私有数据,这时可以创建线程私有数据(Thread-specific Date)TSD来解决。在线程内部,私有数据可以被各个函数访问,但对其他线程是屏蔽的。例如我们常见的变量errno,它返回标准的出错信息。它显然不能是一个局部变量,几乎每个函数都应该可以调用它;但它又不能转载 2013-08-07 16:35:06 · 560 阅读 · 0 评论 -
ubuntu13.10 编译时 关于链接xlib 库阶段出错的问题解决
/usr/bin/ld: fmouse_main.o: undefined reference to symbol 'XFlush'/usr/lib/i386-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command linecollect2: error: ld returned 1 exit status原创 2013-11-05 10:24:43 · 9845 阅读 · 1 评论 -
Ubuntu Linux 创建DEB文件方法
制作Ubuntu deb包的三种方法 | Sean's Blog [转]制作Ubuntu deb包的三种方法Posted by Sean Liu on 10 October, 2009No comments yet This item was filled under [ Ubuntu ]一、使用Ubuntu deb包1. 查看Ubuntu deb包含有哪些文件(不安装)$ d转载 2013-05-09 16:09:34 · 1775 阅读 · 0 评论 -
linux之sed用法
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般原创 2013-05-09 15:56:12 · 456 阅读 · 0 评论 -
linux网络配置
linux的网卡配置:一、修改配置文件方式:系统网络的配置文件通常保存在/etc/sysconfig/network-scripts/目录下 例如:其中的ifcfg-eth0即为第一块网卡的配置信息。eht0完整的配置范例:DEVICE=eth0;//设备名ethoBOOTPROTO=static;//启动状态为静态IP地址BROADCAST=192.168.0.255原创 2012-03-19 16:33:45 · 666 阅读 · 0 评论 -
linux系统如何手动添加默认网关
问:如何在Linux下手动添加默认网关? 答:以root用户为例,执行下面的命令: # route add default gw xxx.xxx.xxx.xxx(网关的IP) 如果用户想更改网关,编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,将对应的网关设置修改之后,执行下面的命令即可: #/etc/init.d/network转载 2012-03-21 16:27:53 · 15685 阅读 · 0 评论 -
make 时nothing approprite 问题的解决办法
Why doesn't man -k (or apropos) work?Before you can use man -k or apropos, you must create the whatis database. Just run the command/usr/sbin/makewhatis(it may take a minute to complete).原创 2012-08-14 15:44:42 · 980 阅读 · 0 评论 -
IPC----signal
signal目录函数名: signal注意点编辑本段函数名: signal 表头文件 #include 功 能: 设置某一信号的对应动作 函数原型 :void (*signal(int signum,void(* handler)(int)))(int); 或者:typedef void(*sig_t) ( int );转载 2012-07-30 00:48:44 · 711 阅读 · 0 评论 -
IPC----shared _memory
shmctl目录头文件函数原型说明编辑本段头文件 #include函数原型 int shmctl( int shmid , int cmd , struct shmid_ds *buf );说明 shmctl是一个共享内存控制函数。其各个参数解释:(1)、int shmid:是由shmget返回的共享内存标识符;(2)、in转载 2012-07-30 00:50:37 · 416 阅读 · 0 评论 -
何为 init?
linux init 0 init1 init 3 init 5 init 6 含义0:停机 1:单用户形式,只root进行维护 2:多用户,不能使用net file system 3:完全多用户 5:图形化 6:重启详解:一、什么是INIT: init是Linux系统操作中不可缺少的程序之一。 所谓的init进程,它原创 2012-08-15 00:04:12 · 695 阅读 · 0 评论 -
Makefile VPATH和vpath的使用
开始接触Makefile已经有好几个月了,最近想好好学习学习但是一个简单的问题就卡壳了很简单的一个问题|-- Makefile|-- include| `-- hello.h`-- src |-- hello.cpp `-- main.cp首先是Makefile 文件和include文件夹还有src文件夹在同一个目录下头文件hello.h在inc转载 2012-08-18 23:09:05 · 43875 阅读 · 6 评论 -
Ubuntu下Gtk+开发环境的设置
为了搞清linux下SWT与GTK+的映射机制,翻出老笔记本装了个Ubuntu,配置GTK+开发环境还是比较简单的。安装必须要的东西安装JDK,使用命令:sudo apt-get install sun-java6-sdk安装eclipse+CDT 5.0,我觉得CDT从5开始渐成气候了,作为一个eclipse开发者,我觉得他比kdevelop好用:),遗憾的是在win下不支持原创 2013-05-06 10:59:01 · 1060 阅读 · 0 评论 -
AF_UNIX 地址系列
AF_UNIX 地址系列(使用 AF_UNIX 或 AF_UNIX_CCSID 地址系列的套接字)可以是面向连接的(类型 SOCK_STREAM),也可以是无连接的(类型 SOCK_DGRAM)。两种类型都很可靠,原因是没有连接两个进程的外部通信函数。UNIX 域数据报套接字的运行方式与 UDP 数据报套接字有所不同。借助 UDP 数据报套接字,客户机程序就不必调用 bind() 函数转载 2013-05-20 15:27:35 · 782 阅读 · 0 评论 -
整理:Linux网络编程之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
sockaddrstruct sockaddr {unsigned short sa_family; /* address family, AF_xxx */char sa_data[14]; /* 14 bytes of protocol address */};sa_family是地址家族,一般都是“AF_xxx”的转载 2013-05-20 17:31:27 · 537 阅读 · 0 评论 -
总结系列(Linux下常见使用总结)
1. 用apt-get命令安装一些软件包时,报错:E:could not get lock /var/lib/dpkg/lock -open等出现这个问题的原因可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因,可能是上次安装时没正常完成,而导致出现此状况。解决方法:输入以下命令sudo rm /var/cache/apt/archives/lock转载 2013-05-21 09:11:12 · 571 阅读 · 0 评论 -
GDB十分钟教程
作者: liigo原文链接: http://blog.youkuaiyun.com/liigo/archive/2006/01/17/582231.aspx日期: 2006年1月16日本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者。GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具转载 2013-05-22 10:30:01 · 491 阅读 · 0 评论 -
Defunct进程 僵尸进程
在测试基于 DirectFB+Gstreamer 的视频联播系统的一个 Demo 的时候,其中大量使用 system 调用的语句,例如在 menu 代码中的 system("./play") ,而且多次执行,这种情况下,在 ps -ef 列表中出现了大量的 defunct 进程,对程序的运行时有害的。按说system的源码中应该已经包含了wait,但也不能排除开发板上这个版本的system中可能没转载 2013-05-22 10:31:12 · 931 阅读 · 0 评论 -
C标准库的setlocale()用法笔记
C 和 C++ 的标准库分别有自己的 locale 操作方法,C 标准库的 locale 设定函数是 setlocale(),而 C++ 标准库有 locale 类和流对象的 imbue() 方法。这篇是我自己的 setlocale() 使用总结。Linux的glibc中的setlocale()具体参考:man 3 setlocale头文件与声明如下:转载 2013-05-21 11:23:31 · 1127 阅读 · 0 评论 -
GDB调试带参数程序
例如一个程序名为prog 参数为 -l a -C abc则,运行gcc/g++ -g prog.c/cpp -o prog就可以用gdb调试程序prog#gdb prog进入gdb调试界面输入参数命令set args 后面加上程序所要用的参数,注意,不再带有程序名,直接加参数,如:set args -l a -C abc回车后输入r转载 2013-05-22 11:53:17 · 559 阅读 · 0 评论 -
Linux中link,unlink,close,fclose详解
每一个文件,都可以通过一个struct stat的结构体来获得文件信息,其中一个成员st_nlink代表文件的链接数。 当通过shell的touch命令或者在程序中open一个带有O_CREAT的不存在的文件时,文件的链接数为1。 通常open一个已存在的文件不会影响文件的链接数。open的作用只是使调用进程与文件之间建立一种访问关系,即open之后返回fd,调转载 2013-05-14 16:18:22 · 713 阅读 · 0 评论 -
dup and dup2剖析
dup和dup2也是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符。它们经常用来重定向进程的stdin、stdout和stderr。这两个函数的 原形如下:#include int dup( int oldfd ); int dup2( int oldfd, int targetfd ) 利用函数dup,我们可以复制一个描述符。传给该函数转载 2014-08-29 10:36:55 · 702 阅读 · 0 评论