linux
fly_air
这个作者很懒,什么都没留下…
展开
-
linux 信号量使用
信号量的数据类型为结构sem_t,它本质上是一个长整型的数。函数sem_init()用来初始化一个信号量。它的原型为: extern int sem_init __P ((sem_t *__sem, int __pshared, unsigned int __value)); sem为指向信号量结构的一个指针;pshared不为0时此信号量在进程间共享,否则只能为当前进程的所有转载 2014-03-21 09:15:43 · 674 阅读 · 0 评论 -
linux SEM_WAIT
名字sem_wait, sem_timedwait, sem_trywait - 锁定一个信号量概要#include int sem_wait(sem_t *sem);int sem_trywait(sem_t *sem);int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);与 -转载 2014-05-08 13:05:26 · 1466 阅读 · 0 评论 -
linux启动流程
linux的基础启动流程1. 加载BIOS的硬件信息,并获取第一个启动设备的代号。2. 读取第一个启动设备的MBR的引导加载程序(即lilo、grub、spfdisk等)的启动信息。3. 加载操作系统的核心信息,核心开始解压,并尝试驱动所有的硬件设备。4. 核心执行init程序并获得运行信息。5. init执行/etc/rc.d/rc.sysinit文件。6. 启动核心的外转载 2014-04-09 08:43:04 · 521 阅读 · 0 评论 -
fork()函数的精辟分析
#include ;#include ; main () { pid_t pid; pid=fork(); if (pid printf("error in fork!"); else if (pid == 0)转载 2014-07-05 12:03:22 · 553 阅读 · 1 评论 -
VS2008项目移植到Linux
不少人都遇到过这种情况:在Windows下用Visual Studio工具开发的程序需要移植到Linux系统中,做成Linux版本的,但程序比较大,在Linux上又离不开Make,手动编写Makefile文件的工作量又太大.在这里提供一种方法仅供参考.由于VS的解决方案文件“*.sln”和项目文件“*.vcproj”文件中保存了源代码的依赖关系和编译信息,只要把它转换成Makefile文件就行转载 2015-01-06 16:18:02 · 1529 阅读 · 0 评论 -
linux core文件设置
在开发过程中,当一个Linux程序异常退出时,我们可以通过core文件来分析它异常的详细原因。缺省情况下,Linux在程序异常时不产生core文件,要想让程序异常退出时产生core dump文件,需要使用ulimit命令更改coredump的设置:ulimit -c unlimited 上面的命令表示在程序异常时产生core dump文件,并且不对core dump文件的大小进行限制。原创 2015-03-24 10:08:17 · 413 阅读 · 0 评论 -
Linux 概念架构的理解
摘要Linux kernel 成功的两个原因:架构设计支持大量的志愿开发者加入到开发过程中;每个子系统,尤其是那些需要改进的,都支持很好的扩展性。正是这两个原因使得 Linux kernel 可以不断进化。一、Linux内核在整个计算机系统中的位置Fig 1 - 计算机系统分层结构分层结构的原则:t转载 2015-12-09 22:05:15 · 421 阅读 · 0 评论 -
运维利器:万能的 strace
strace是什么?按照strace官网的描述, strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。转载 2016-06-12 13:22:21 · 2197 阅读 · 0 评论 -
linux umask使用详解
linux umask使用详解转载 2016-09-26 09:50:53 · 400 阅读 · 0 评论 -
运维利器:万能的 strace
strace是什么?按照strace官网的描述, strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。转载 2016-10-02 15:12:00 · 1177 阅读 · 0 评论 -
gcc编译生成静态及动态链接库步骤
gcc编译生成静态及动态链接库步骤转载 2016-12-01 11:23:16 · 786 阅读 · 0 评论 -
linux下core dump
linux下core dumpsetrlimitgetrlimit转载 2016-11-19 12:16:43 · 359 阅读 · 0 评论 -
linux 发行版族谱
早期继承关系截止2018继承关系转载 2018-12-23 12:23:50 · 1544 阅读 · 0 评论 -
一文带你彻底理解Linux的各种终端类型及概念
每天使用Linux每天都要接触到Bash,使用Bash时似乎永远都让人摸不着头脑的概念就是终端,坐在这台运行着Linux的机器的显示器前面,这个显示器就是终端的输出,而插在机器上的USB键盘或者PS/2键盘就是终端的输入,看来这是一种最直白意义上关于终端的解释。但是有的时候,机器上并没有看到显示器或者键盘接口,但是却有一个串口,想操作这台机器想必只能通过这个串口来进行了,这个时候,串口另一端的...转载 2019-07-29 23:06:17 · 323 阅读 · 0 评论 -
linux下的Source命令的基本功能
source命令用法:source FileName作用:在当前bash环境下读取并执行FileName中的命令。注:该命令通常用命令“.”来替代。如:source .bash_rc 与 . .bash_rc 是等效的。注意:source命令与shell scripts的区别是,source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或a转载 2014-02-11 21:52:38 · 681 阅读 · 0 评论 -
sigaction使用(signal siginfo_t)
sigaction使用可以参考的几个manman sigaction man 7 signalSignal Value Action Comment----------------------------------------------------------------------SIGHUP 1 Term H转载 2014-01-18 11:58:42 · 12677 阅读 · 2 评论 -
Linux 信号signal处理机制
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。 一、信号的基本概念 本节先介绍信号的一些基本概念,然后给出一转载 2013-11-04 15:22:51 · 632 阅读 · 0 评论 -
揭开Linux操作系统的Swap交换区之谜
Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。 Swap的原理是一个较复杂的问题,需要大量的篇幅来说明。在这里只作简单的介绍,在以后的文章中将和大家详细讨论Swap实现的细节。 众所周知,现代操作系统都实现了“虚拟内存”这一转载 2013-11-20 10:17:41 · 2454 阅读 · 0 评论 -
linux下configure命令详细介绍
Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用。与一些技巧相比,Configure显得基础一些,当然使用和学习起来就显得枯燥乏味一些,当然要成为高手,对基础转载 2013-11-20 10:18:56 · 747 阅读 · 0 评论 -
linux中set,env,export,declare显示shell变量的区别
shell变量包括两种变量1.本shell私有的变量:通过赋值语句定义好的变量,可以通过如下方法定义shell变量 A1="1234" delcare A2="2345"2.用户的环境变量:通过export语法导出的shell私有变量,可以通过如下方说明:shell变量包括两种变量1转载 2013-11-20 10:20:30 · 1617 阅读 · 0 评论 -
Linux 中 RPM 命令参数使用详解
在Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是Red Hat Package Manager(简称RPM)。此工具包最先是由Red Hat公司推出的,后来被其他Linux开发商所借用。由于它为Linux使用者省去了很多时间,所以被广泛应用于在Linux下安装、删除软件。下面就给大家介绍一下它的具体使用方法转载 2013-11-20 10:15:32 · 794 阅读 · 0 评论 -
使用Linux命令来发送信息
Linux发展到今天,很多功能已经可以在可视化的界面中来完成。不过在很多情况下,命令还是非常有用的,特别是Linux系统管理员可以通过命令发送系统休息、布告栏信息、公共信息的方式与其他用户沟通。 设置登录提示 /etc/motd文件的用途 /etc/motd?即message?of?today(布告栏信息),每次用户登录时,/etc/motd文件的内容会显示在用转载 2013-11-20 10:19:57 · 1073 阅读 · 0 评论 -
Linux用户环境变量
环境变量就是系统或软件设置的一些参数,用户环境变量就是用户登录系统后,都有自已专用的运行环境。在Windows系统中用户环境变量保存在用户家目录,Linux也是同样的。本文主要是讲解Linux常用的环境变量和环境变量的设置。一、环境变量相关操作(只应用于当前,要永久保存需要写入到相关文件。)#echo $PATH显示PATH设置。#env显示当前用户变量。#set显转载 2013-11-20 10:12:13 · 841 阅读 · 0 评论 -
Linux makefile 教程非常详细
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比转载 2013-11-20 10:14:49 · 949 阅读 · 0 评论 -
LINUX下的C++编译器GCC简介
LINUX下的C++编译器GCC简介Gcc简介Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。gcc 编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行转载 2013-11-07 14:10:31 · 772 阅读 · 0 评论 -
Linux之#pragma的用法
预编译指令#pragma的用法 最近在看开源项目中的代码时,发现许多地方都用到了#pragma的程序。因此,就问了下谷歌老师,总结了下#pragma预编译指令的常用用法,现在和大家分享下。一.#pragma最常用的方法1. #progma pack(n)1>功能:使用#progma pack预编译指令可以改变编译器的默认值(不是绝对的,有些编译器只转载 2013-11-07 09:06:01 · 1823 阅读 · 0 评论 -
linux 环境变量,shell变量
linux 环境变量,shell变量set:显示当前shell的变量,包括当前用户的变量env:显示当前用户的变量export:显示当前导出成用户变量的shell变量每个shell有自己特有的变量(set显示的变量),这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如HOME,SHELL等这些(对应文件:/etc/prof原创 2013-11-07 09:45:48 · 842 阅读 · 0 评论 -
GDB的使用方法
GDB的使用方法 一、GDB的静态调试启动方法:1、当需要在命令行通过gdb来启动可执行程序的时候,可使用一下命令: gdb 可执行程序名> 这个时候gdb会加载可执行程序的符号表和堆栈,并为启动程序作好准备; 接下来,需要设置可执行程序的命令行参数: set args 参数列表> 然后设置断点: b或break; 最后通过命令r或run来转载 2013-11-24 12:50:17 · 587 阅读 · 0 评论 -
gcc编译选项
gcc 提供了大量的警告选项,对代码中可能存在的问题提出警 告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration转载 2013-11-14 13:02:47 · 825 阅读 · 0 评论 -
linux ar命令
当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使得以后编程可以减少开发代码量。这里介绍命令ar,用来对库操作。 1.ar基本用法 ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的内容、模式、时间戳、属主、组等转载 2013-11-14 13:05:44 · 659 阅读 · 0 评论 -
gcc编译参数-fPIC的一些问题
-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code), 则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意 位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。gcc -shared -fPIC -o 1.so 1.c这里有一个-fPIC参数转载 2014-01-12 16:03:41 · 681 阅读 · 0 评论 -
信号处理:signal和sigaction的区别
signal和sigaction的区别下面所指的signal都是指以前的older signal函数,现在大多系统都用sigaction重新实现了signal函数1、signal在调用handler之前先把信号的handler指针恢复;sigaction调用之后不会恢复handler指针,直到再次调用sigaction修改handler指针。:这样,(1)s转载 2014-01-18 11:41:57 · 1404 阅读 · 0 评论 -
sigaction用法
sigaction(查询或设置信号处理方式)相关函数signal,sigprocmask,sigpending,sigsuspend表头文件#include定义函数int sigaction(int signum,const struct sigaction *act ,struct sigaction *转载 2014-01-18 11:57:15 · 1600 阅读 · 0 评论 -
gcc中的环境变量
有大量的环境变量可供设置以影响 GCC 编译程序的方式。利用这些变量的控制也可使用合适的命令行选项。一些环境变量设置在目录名列表中。这些名字和 PATH 环境变量使用的格式相同。特殊字符 PATH_SEPARATOR (安装编译程序的时候定义)用在目录名之间。在 UNIX 系统中,分隔符是冒号,而 Windows 系统中为分号。C_INCLUDE_PATH编译 C 程序时使转载 2013-11-15 10:59:25 · 1115 阅读 · 0 评论