
Linux
文章平均质量分 92
许振坪
分享是最好的学习!我的微信号:kaoya508253
展开
-
arm系列交叉编译器各版本区别
softfp:armel架构(对应的编译器为gcc-arm-linux-gnueabi)采用的默认值,用fpu计算,但是传参数用普通寄存器传,这样中断的时候,只需要保存普通寄存器,中断负荷小,但是参数需要转换成浮点的再计算。hard:armhf架构(对应的编译器gcc-arm-linux-gnueabihf)采用的默认值,用fpu计算,传参数也用fpu中的浮点寄存器传,省去了转换,性能最好,但是中断负荷高。两者主要区别是,ABI是计算机上的,EABI是嵌入式平台上(如ARM,MIPS等)。原创 2023-03-14 23:22:55 · 5358 阅读 · 3 评论 -
Ubuntu软件包管理之apt与apt-get的区别
彻底理清ubuntu之apt和apt-get区别原创 2023-03-11 21:18:33 · 3978 阅读 · 1 评论 -
命令行程序界面设计指南
这份文档总结了一些设计规范,帮助你写出体验良好的命令行程序。Command Line Interface Guidelines原创 2020-12-18 11:37:20 · 906 阅读 · 0 评论 -
linux定时器总结
1 参考资料Ø http://www.ibm.com/developerworks/cn/linux/1307_liuming_linuxtime1/Ø 《linux系统编程》第“10.9 定时器”章节2 概要要在linux中使用定时器,有如下三种方法:定时器方式一个进程允许使用的数量通知方式简单的原创 2013-12-16 01:06:31 · 10563 阅读 · 0 评论 -
linux下启动telnet服务器
1. 环境Debian GNU/Linux 6.02. 安装xinetd telnet服务器是通过xinetd(超级Internet守护进程)来管理的,所以要先安装xinetd。安装命令如下:# apt-get install xinetd3. 安装telnet服务器输入以下命令安装:# apt-get install原创 2013-01-05 16:08:16 · 11979 阅读 · 1 评论 -
用__attribute__((deprecated))管理过时的代码
用__attribute__((deprecated))管理过时的代码原创 2016-08-30 13:53:47 · 10305 阅读 · 0 评论 -
在Linux PC上挂载JFFS2文件系统
在Linux PC上挂载JFFS2文件系统转载 2016-08-26 15:22:46 · 4026 阅读 · 0 评论 -
区分编译器不同版本、不同操作系统的宏
在编写跨平台的代码时,我们往往需要用到条件编译的宏,以便让同一套代码兼容编译器不同版本、不同操作系统,下面就介绍下这些宏。区分编译器不同版本的宏每个编译器都会自带一些预定义宏,以下拿gcc和VC++举例:GCC编译器预定义宏:Common Predefined MacrosVisual C++编译器预定义宏: Predefined Macros在编译器众多的预定义宏中,肯定有一个是用于标识编译原创 2017-04-05 16:30:00 · 7503 阅读 · 1 评论 -
浅谈C/C++编程中的字符编码转换
背景在写跨平台的C/C++代码过程中(本文的研究只限于C/C++范畴),经常会遇到中文字符串乱码的问题。比如,同一个源码,用MSVC编译/运行能正常显示中文字符串,但在linux下编译/运行显示中文字符串就乱码。导致这种现象的根源就在于字符集编码不匹配导致,本文将探索隐藏在编程过程中鲜为人知的字符集转换问题,如果你彻底理解了以下几个字符集的概念,以及编程过程中哪些因素会影响这些字符集,将有助于你从根原创 2017-03-02 15:11:48 · 23808 阅读 · 1 评论 -
Sublime Text 3官方总算解决中文显示乱码,无法输入中文的问题了
很长一段时间以来,Sublime Text 3 官方 Linux 版本都不支持中文,显示中文会乱码,也不支持中文输入法,无法输入中文(Windows版没有该问题)。为了让 Sublime Text 3 官方 Linux 版支持中文,都得通过第三方插件来解决。为此,网友们也写了很多文章来解决该问题,我此前的博客文章 代码编辑器Sublime Text 3学习所得 也有描述过。总结起来就是:通过 ...原创 2019-03-15 19:50:10 · 1306 阅读 · 0 评论 -
信号中断 与 慢系统调用
1. 术语1.1. 慢系统调用(Slow system call)该术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就会一直阻塞。慢系统调用可以被永久阻塞,包括以下几个类别:(1)读写‘慢’设备(包括pipe,终端设备,网络连接等)。读时,数据不存在,需要等待;写时原创 2013-12-11 14:12:11 · 13624 阅读 · 6 评论 -
linux下用script和scriptreplay对命令行操作录像
之前部署什么环境的时候,由于在部署环境,也不好去做笔记,只能部署之后,用history来查看自己操作过的命令,但是这个只能看自己输入的命令,系统的回显等等都看不了,无意间发现了用script可以对自己的操作进行录像,于是分享给大家在要记录操作之前输入命令:[root@localhost ~]# script -t 2> test.time -a test.txtS转载 2013-10-19 23:42:53 · 1630 阅读 · 1 评论 -
makefile中使用echo -e引发的思考(涉及dash和bash)
背景有次我在写makfile时,用echo -e要显示带颜色的文字,命令如下:echo -e "Full Version is:\033[31m\033[1m v1.0 \033[0m"; 该命令在控制台中单独执行都显示正常,效果如下:Full Version is: v1.0可以放在makefile中一运行, 结原创 2013-10-08 00:54:13 · 7241 阅读 · 1 评论 -
全面了解Linux下Proc文件系统
Proc是一个虚拟文件系统,在Linux系统中它被挂载于/proc目录之上。Proc有多个功能 ,这其中包括用户可以通过它访问内核信息或用于排错,这其中一个非常有 用的功能,也是Linux变得更加特别的功能就是以文本流的形式来访问进程信息。很Linux命令(比如 ps、toPpstree等)都需要使用这个文件系统的信息。本文就是向用户介绍一些访问这些信息的方法 。需要说明的是,本文所述的内转载 2012-09-27 14:23:29 · 979 阅读 · 0 评论 -
Linux下安装Apache
1. 故事情节的背景最近要在linux上架设一个web服务器,我选择了Apache(即httpd)。我用xp + linux虚拟机来模拟。环境Ipwindows xp192.168.1.100linux虚拟机(CentOS-5.7)192.168.1.1012.原创 2012-10-17 22:34:19 · 1372 阅读 · 0 评论 -
Linux下的计算器(bc、expr、dc、echo、awk)知多少?
在windows下,大家都知道直接运行calc,(c:\windows\system32\calc.exe),请可以打开计算器。注:calculate vt.&vi. 计算;calculator n. 计算器。calc就是这个计算的简写。Ca在化学中是代表钙元素,calcium 钙(20号元素,符号Ca)。两者有什么联系呢?calculate来自calculus,原义是做转载 2013-01-12 11:03:58 · 1769 阅读 · 0 评论 -
Apache反向代理
反向代理简言之就是通过一台代理服务器,让Internet用户可以访问到内部网络上的服务器。实验环境:一台带有两块网卡的OB服务器,一块连接外网1.1.1.1,一块连接内网192.168.100.11、开启apache的代理模块。修改httpd.conf文件,去掉下面的注释 #LoadModule proxy_module /usr/lib/apache/modules/lib转载 2013-03-13 21:59:16 · 12126 阅读 · 1 评论 -
linux下C/C++源码宏展开
windows编程宏展开此前写过一篇关于宏的文章:宏使用之预处理操作符总结,在这里详细介绍了Windows集成开发环境下(IDE)如何进行宏展开,linux编程宏展开使用gcc,g++编译器编译,使用编译器的-P选项,假设有源文件a.cpp,使用以下命令进行宏展开,你就可以在a.prescan文件中看到效果了。$g++ -E -P a.cpp > a.p原创 2013-04-22 17:30:23 · 5172 阅读 · 0 评论 -
Linux上的free命令详解
解释一下Linux上free命令的输出。 下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如:FO[2][1] = 24677460FO[3][2] = 10321516 1 2 3 4转载 2013-05-17 16:24:15 · 1015 阅读 · 0 评论 -
Linux共享库(动态库)与进程之间共享全局变量可行性分析
在主程序中可以使用动态链接库中的全局变量是正确的,不可否认的,但这需要在程序编译链接时就要把动态库加上,并在需要使用的程序中使用extern声明变量,这其实没有达到动态库的本质目的(使用时再调用);这其实不算是一个大问题,如果只在一个进程中使用也不会有问题,这里主要讨论在多进程中使用动态库全局变量的问题。如果想在进程间依靠动态库来共享全局变量恐怕是不太可能的事情,因为不同进程访问动态库时,是写转载 2013-08-05 23:01:51 · 3146 阅读 · 0 评论 -
linux进程间的同步方法
进程间通讯(IPC)方法主要有以下几种: 管道/FIFO/共享内存/消息队列/信号 1.管道中还有命名管道和非命名管道(即匿名管道)之分,非命名管道(即匿名管道)只能用于父子进程通讯,命名管道可用于非父子进程,命名管道就是FIFO,管道是先进先出的通讯方式 2.消息队列是用于两个进程之间的通讯,首先在一个进程中创建一个消息队列,然后再往消息队列中写数据,而另一转载 2013-08-05 23:19:18 · 5431 阅读 · 0 评论 -
GCC选项之-M
大多数的C/C++编译器都支持一个“-M”的选项,即自动找寻源文件中包含的头文件。举个例子,比如mian.c包含有如下头文件。#include #include "log.h" 用gcc -M main.c就可以输入其包含的所有头文件。如下图所示。 [root@bogon CodeNotes]# gcc -M main原创 2013-08-31 13:21:51 · 9536 阅读 · 0 评论 -
Linux应用软件安装基本方法
要充分发挥电脑的作用,就得有大量的应用软件,完成不同的工作。在Windows环境中安装各种应用软件的思路与方法,想必大家早已熟悉。然而,在使用Linux时,我们却总会被这些本不应该是问题的问题所困扰:怎么安装应用软件?我的软件安装在什么地方?如何删除不要的应用软件?…… 下面,我们就一起来认识一下这些方面的知识。 一、解析Linux应用软件安装包 通常Linux应用软件的安装转载 2012-07-10 14:22:06 · 954 阅读 · 0 评论