红联Linux门户

Linux帮助
  • Ubuntu下查看系统是多少位的

    2015-09-12 - 使用getconf LONG_BIT来查看系统是多少位的: getconf LONG_BIT 如果是32位系统,则会输出32,同理,如果是64位系统,则会输出64。 几种查看CentOS系统版本和位数的方法: http://www.linuxdiyf.com/linux/12902.html CentOS查看内核版本,位数,版本号: ht...

  • windows C与linux C区别?

    2015-09-12 - windows C库格式为 .dll( 动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件)。 生成的*.exe 。 linux C 库格式为 .so(.so 为共享库 : 动态库(shared library/shared object/...

  • Linux应用程序超过10秒未调度

    2015-09-11 - 先说说Linux进程调度的策略,作为LWP,各个进程都会及时调度。就算超过10000个 cpu密集型线程也能在1秒内调度数次。(8核为例) Java使用的是Native的线程调度,因此也不会出这个问题。 C++后台更是如此。 之前怀疑是线程被挂起,但经过排查,否定了这种可能...

  • 你知道Linux内核是如何构建的吗?你知道Linux内核是如何构建的吗?

    2015-09-11 - 介绍 我不会告诉你怎么在自己的电脑上去构建、安装一个定制化的 Linux 内核,这样的资料太多了,它们会对你有帮助。本文会告诉你当你在内核源码路径里敲下make 时会发生什么。 当我刚刚开始学习内核代码时,Makefile 是我打开的第一个文件,这个文件看起来真...

  • 递归遍历Linux下的目录文件源码实现递归遍历Linux下的目录文件源码实现

    2015-09-10 - 网上搜到的结果大都不令人满意,这里综合了网上的结构,做了小许改动.希望对大家有帮助. 在Linux下的目录结构操作基本上使用opendir,readdir,closedir就够了. #include stdio.h #include string.h #include dirent.h #include sys/types.h #include sys/stat.h...

  • Linux shell字符串模式匹配运算符

    2015-09-10 - Linux shell 字符的串截取 模式匹配运算符 注意 #和%在标准键盘上分别是一个在左一个在右; 所以 #匹配左边(最短匹配),%匹配右边(最短匹配) :只有一个#或%,匹配的短 ##匹配左边(最长匹配),%%匹配右边(最长匹配):有两个##或%%,匹配的长哦 ${var...

  • 学习写linux脚本

    2015-09-09 - for语句 例子:查找本目录包含子目录下所有apk文件,注意, `find -name *.apk ` 中的 , `是两个字符 #!/bin/sh listname=`find -name *.apk` for TM in $listname do echo this is ${TM} done 例子:打印数组 listname=(hei heow2 hfei) for TM in ${listna...

  • linux下代码分析工具Splint

    2015-09-09 - 1.C代码静态分析工具 Its4 读取一个或多个 C/C++源程序,将每个源程序分割成函数标志流,然后检查生成的标志是否存在于漏洞数据库中,从而得到每个源程序的所有错误警告列表,并带有相关的描 述。其规则库vulns.i4d定义了各种函数的危险等级,描述等,通过规...

  • modprobe、insmod内核模块区别

    2015-09-09 - linux设备驱动有两种加载方式insmod和modprobe,下面谈谈它们用法上的区别。 1、insmod一次只能加载特定的一个设备驱动,且需要驱动的具体地址。写法为:insmod drv.ko 2.modprobe则可以一次将有依赖关系的驱动全部加载到内核。不加驱动的具体地址,但需要在...

  • linux errno查看和使用

    2015-09-09 - 1.void perror(const char *s) 函数说明 perror ( )用来将上一个函数发生错误的原因输出到标准错误(stderr),参数s 所指的字符串会先打印出,后面再加上错误原因 字符串。此错误原因依照全局变量 errno 的值来决定要输出的字符串。 2.char *strerror(int errno...

  • linux下如何将xxx.c编译打包成xxx.so

    2015-09-08 - 第一步:编辑文件hello.c。 #include stdio.c void hello() { printf(hello world!\n); } 第二步:编译hello.c文件为可执行文件。 # gcc hello.c -o hello 第三步:编译hello.c文件为.so文件。 # gcc hello.c fPI share -O liblib.so linux下.o .so .a文件详解...

  • Linux C下如何查看进程数

    2015-09-08 - 第一步:通过PS命令查看进度 ID号。 第二步:在proc下查看该进程号起了几个进程。 第三步:通过 ls |wc -l查看显示的进程数。 # ps PID USER COMMAND 1 root init 2 root [kthreadd] 3 root [ksoftirqd/0] 4 root [kworker/0:0] 5 root [kworker/0:0H] 7 roo...

  • 编译MIPS架构的Android版WebRTC编译MIPS架构的Android版WebRTC

    2015-09-08 - 编译环境:Ubuntu15.04_64 使用ninja进行编译 WebRTC默认编译的是针对ARM架构的,在MIPS架构的CPU上运行会报错。 步骤如下:(前提是你已经下好了源码,我的源码是2015年7月份下载的) 1、export GYP_DEFINES=OS=android target_arch=mipsel//指定编译为MIPS...

  • linux下.o .so .a文件详解

    2015-09-08 - .o、.a、.so文件都是Linux下的程序函数库,即编译好的可以供其他程序使用的代码和数据。 优点:程序模块化,容易重新编译,方便升级。 分类:静态函数库(对应.a文件)、共享函数库(对应.so文件,类似于Windows的dll文件)、动态加载函数库(对应.o文件,相...

  • Linux进程与线程的区别和联系

    2015-09-07 - 1、两者区别: (1)进程是比较大的单位,一个进程可以有多个线程,一个线程只能被一个进程拥有。 (2)进程是资源分配的基本单位,线程是处理机制调度的最小单位,所有的线程共享其所属进程的所有资源与代码。 (3)线程执行过程中容易同步,而进程之间需要...

  • Linux系统文件描述符理解

    2015-09-07 - 1、查看系统文件描述符个数。 以下是查看Linux文件描述符的三种方式: [root@localhost ~]# sysctl -a | grep -i file-max --color fs.file-max = 392036 [root@localhost ~]# cat /proc/sys/fs/file-max 392036 [root@localhost ~]# ulimit -n 1024 系统级...

  • Linux C打印所有的环境变量

    2015-09-07 - 1、在终端显示环境变量 执行env命令 nii@mmch:~/code$ env LC_PAPER=zh_CN.UTF-8 LC_ADDRESS=zh_CN.UTF-8 XDG_SESSION_ID=4 LC_MONETARY=zh_CN.UTF-8 TERM=xterm SHELL=/bin/bash SSH_CLIENT=192.168.217.1 34476 22 LC_NUMERIC=zh_CN.UTF-8 SSH_TTY=/dev/pt...

  • Linux gcc使用以及库文件的编译

    2015-09-07 - 预处理, 生成 .i 的文件 [ 调用预处理器 cpp] 将预处理后的文件转换成汇编语言 , 生成文件 .s[ 调用编译器 gcc/egcs] 有汇编变为目标代码 ( 机器代码 ) 生成 .o 的文件 [ 调用汇编器 as] 连接目标代码 , 生成可执行程序 [ 调用链接器 ld] gcc -E hello.c -o...

  • Linux和Windows堆栈溢出利用对比

    2015-09-07 - 堆栈溢出的利用,有三大条件,一是返回点的定位,二是ShellCode的编写,三是跳转到ShellCode。 1.返回点的定位 在Windows下,F.ZH的在它经典的《菜鸟版Exploit编写指南之一》的文章中,详细的讲述了利用报错对话框精确定位溢出返回点的方法。 Windows下弹出...

  • Linux错误码查看

    2015-09-07 - 在用Linux下写C的代码的时候,利用open、create函数总是会出现错误 但是返回值为 -1 ,并不能定位错误在哪里,所以查看系统提供的错误码就显得特别有必要了 需要包含头文件 errno.h 并且定义一个 extern int errno 之后打印出来变量 errno 查看错误码 errno....

  • Windows和Linux下的sleep函数区别

    2015-09-06 - 功能: 执行挂起一段时间 用法: unsigned sleep(unsigned seconds); 在VC中使用带上头文件 #include windows.h 在gcc中,使用的头文件因gcc版本的不同而不同 一般来说,linux系统需要添加的头文件为: #include unistd.h 在VC中Sleep中的第一个英文字符为大写...

  • Linux用树形结构显示目录结构

    2015-09-06 - 在有些Linux上自带了tree命令来一树状结构显示一个目录,但是在有些linux上没有自带这个程序,所以这里用python写了一个小程序来实现这个功能,代码如下: #!/usr/bin/python import os, sys, string class XXTree: def __init__(self): pass def printHelp(...

  • CentOS6设置Django开发环境

    2015-09-06 - 今天在我的Centos6.5机器上安装 Django 开发环境,在安装完使用 django-admin.py startproject myapp 创建应用的时候报了下面的错误: $ django-admin.py startproject myapp Traceback (most recent call last): File /home/jhadmin/myenv/bin/django-admin...

  • RPM specfile中$1值的研究

    2015-09-06 - 这几天翻译 How to create an RPM package(https://fedoraproject.org/wiki/How_to_create_an_RPM_package),发现 RPM Spec 不像表面上看着那么简单。下面简述 RPM 工作流程。 安装流程:%pre - 安装文件 - %post 卸载流程:%preun - 卸载文件 - %postun...

  • Linux内核文档(中文版)Linux内核文档(中文版)

    2015-09-05 - v 0.01 在内核源码的 Documentation/ 目录下有大量高质量的内核文档,并且已经有部分翻译成了中文并保存在 Documentation/zh_CN/ 下。 不过目前中文翻译进度几乎停滞,还有很大一部分还没有来得及翻译。而且早期用于中文翻译的网站如今也无法访问。 该项目用...

  • 最诡异的Linux fork进程问题(我们平时都在写)

    2015-09-05 - 从来没有遇到过。 运行环境:在Linux自带的文本编辑器中输入C程序,在shell中编译运行,下面直接看代码和运行结果。 第一个代码:#includestdio.h #includestdlib.h #includeunistd.h #define N 2 int main() { int i; pid_t pid; for(i = 0; i N; i++) { pi...

  • PHP程序员解决问题能力的八个级别PHP程序员解决问题能力的八个级别

    2015-09-05 - 这个话题老生长谈了,在面试中必然考核的能力中,我个人认为解决问题能力是排第一位的,比学习能力优先级更高。解决问题的能力既能看出程序员的思维能力,应变能力,探索能力等,又可以看出他的经验。如果解决问题能力不佳是无法通过面试的。 这里举个例子,...

  • Django快速上手(一)

    2015-09-05 - 一、在ubuntu下配置django环境 开发环境Linux/Ubuntu 15.04 python 2.7.6 django 1.8 安装Python 安装pip,用命令 sudo apt-get install python-pip 安装Django,方法1:使用上一步安装的pip:sudo pip install Django,方法二:源码安装,1.git clone https...

  • Android内核编译

    2015-09-04 - 说明: 我这里用的是Android 4.2.2自带的交叉编译工具。如果是使用host系统安装的,我觉得应该也是可以的。但是没有测试过。因为Android源代码已经自带了,所以大多数情况下,不需要再安装host系统的交叉编译工具。 Android自带的交叉编译工具有两套,位于pr...

  • Linux4.3.2内核自带LCD驱动移植

    2015-09-04 - 开发板:jz2440 4.3吋 内核:Linux4.3.2 arch/arm/mach-s3c24xx/mach-smdk2440.c: 将源代码中的对应部分改为以下代码: /* LCD driver info */ static struct s3c2410fb_display smdk2440_lcd_cfg __initdata = { .lcdcon5 = S3C2410_LCDCON5_FRM565 | S3C24...

  • linux内核和应用程序区别

    2015-09-03 - 应用程序存在于虚拟内存中, 有一个非常大的堆栈区. 堆栈, 当然, 是用来保存函数调用历史以及所有的由当前活跃的函数创建的自动变量. 内核, 相反, 有一个非常小的堆栈; 它可能小到一个, 4096 字节的页. 你的函数必须与这个内核空间调用链共享这个堆栈. 因此,...

  • Linux下用Sublime-Text3编译输出Java文件Linux下用Sublime-Text3编译输出Java文件

    2015-09-03 - 因为现在在借着经典的书籍巩固一些基础知识,所以会经常跑一些简单的程序,可又不想开庞大的IDE。所以就想试着用Sublime-Text来编译程序,哦,当然如果习惯的话,用 terminal 也可以。其实Sublime-Text里有编译功能,ctrl+B 即可,但编译后只是生成了 .class...

  • linux线程私有数据---TSD池

    2015-09-03 - 进程内的所有线程共享进程的数据空间,所以全局变量为所有线程共有。在某些场景下,线程需要保存自己的私有数据,这时可以创建线程私有数据(Thread-specific Data)TSD来解决。在线程内部,私有数据可以被线程的各个接口访问,但对其他线程屏蔽。 线程私有数...

  • crontab获取本机ip

    2015-09-03 - 写了个shell获取ip的函数,如下 function GetLocalIP() { ifconfig | grep inet | grep -v 127.0.0.1 | cut -d: -f2 | awk {print $1} |head -n1 } 添加到crontab中执行,发现得到的ip_address为空。 这是由于 crontab中的环境变量与用户环境的环境变量不一...

  • linux下vim自动在c文件插入文件头

    2015-09-02 - 我们希望在新建c文件时,自动在文件头部加入一些代码,比如预处理命令,和编码设置,可以将以下配置放到/etc/vimrc或者 ~/.vimrc 文件底部,然后退出vim在进入vim即可生效。 新建.c,.h,.sh,.java文件,自动插入文件头 autocmd BufNewFile *.cpp,*.[ch],*.sh,...

  • 使用C#给Linux写Shell脚本(下篇)使用C#给Linux写Shell脚本(下篇)

    2015-09-02 - 在上篇的《使用C#给Linux写Shell脚本( http://www.linuxdiyf.com/linux/13692.html )》结尾中,我们留下了一个关于C#如何调用BashShell的问题。在文章发布之后,我留意到有读者留言推荐使用Pash(一款类PowerShell的东西),在我下载并安装了该项目之后,...

  • 使用C#给Linux写Shell脚本使用C#给Linux写Shell脚本

    2015-09-02 - 在咱们IT界,如果手中没有一点压箱的本事,那就只有看的份了。今天我们也要提升下自己的格调,学习些脑洞大开的东西,学完之后跑去群子了威吓其他群友,不就是个玩嘛,走着! 说起Linux中的脚本,毋庸置疑,用得最多的肯定是Shell脚本,其他的还有Python、Ru...

  • .vimrc & .bashrc文件配置

    2015-09-01 - /* 如果vim还没有语法高亮,那么在/etc/profile 中添加以下语句 */ export TERM=xterm-color // 注: 只对各个用户自己的主目录下的.vimrc修改的话,修改内容只对本用户有效,要想全部有效,可以修改 /etc/vimrc,同样的 /etc/bashrc 是针对所有用户的启动文件...

  • Linux下gcc与g++的差别Linux下gcc与g++的差别

    2015-09-01 - 一般而言,在Linux下编译程序分为以下4个阶段: 预处理:编译处理宏定义等宏命令(eg:#define)生成后缀为.i的文件 编译:将预处理后的文件转换成汇编语言生成后缀为.s的文件 汇编:由汇编生成的文件翻译为二进制目标文件生成后缀为.o的文件 连接:多个目标...

  • gcc和g++的区别

    2015-09-01 - 一般linux系统都自带了gcc编译器的,你可以用你的安装光盘去安装,如果你是觉得自带的gcc版本太低了,可以去gcc的官方网站可以下载到,编译需要很长的时间,如果你只编译C或者C++可以只下载gcc-g++和gcc-core,这样编译的可能要快一些,晚上睡觉前,你可以编...