
linux
文章平均质量分 59
Kaiwii
单调,简单
展开
-
recv send 阻塞和非阻塞
int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数指定发送端套接字描述符;第二个参数指明一个存放应用程序要发送数据的转载 2013-01-29 09:26:43 · 1186 阅读 · 0 评论 -
Linux下载工具Curl详解
Linux下载工具Curl也是Linux下不错的命令行下载工具,小巧、高速,唯一的缺点是不支持多线程下载。在 http://curl.haxx.se/download/curl-7.14.0.tar.gz下载最新版本。下载后便可使用如下命令编译安装:#tar zxvf curl-7.14.0.tar.gz#cd curl-7.14.0/#./configure#make#mak转载 2012-04-05 08:55:01 · 2115 阅读 · 0 评论 -
关于Makefile的一篇好文章
http://wenku.baidu.com/view/8a70c58583d049649b665864.html转载 2012-04-05 16:08:03 · 590 阅读 · 0 评论 -
kill用法详细解释(特别是信号量9的使用以及理解)
Linux kill命令当需要中断一个前台进程的时候,通常是使用组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。该命令可以终止后台进程。至于终止后台进程的原因很多,或许是该进程占用的CPU时间过多;或许是该进程已经挂死。总之这种情况是经常发生的。Linux进程中的kill命令是通过向进程发送指定的信号来结束进程的。如果没有指定发送信号,那么默认值为T转载 2012-03-30 11:56:12 · 18512 阅读 · 0 评论 -
在linux下如何关闭AVD
root@kaiwiiho:/home/kaiwii/android-sdk-linux/platform-tools# kill -9 3133root@kaiwiiho:/home/kaiwii/android-sdk-linux/platform-tools# ./adb devicesList of devices attached ???????????? device一、问原创 2012-03-30 12:20:11 · 2655 阅读 · 0 评论 -
SHELL心得-神马的0与1
正如linux中的“/”与wins中的“\”,又如为什么红灯就要停车,绿灯就要要开车。这个问题,没有为什么,只有怎么做。所以,shell中为什么0是真的,又为什么1是假的。就随他去吧原创 2012-03-09 11:41:44 · 852 阅读 · 0 评论 -
SHELL心得-关于变量的使用
1、关于变量的次序问题在脚本中,对于同一个进程来说,没有全局或者局部变量之分。就是説,假如你在一个函数内使用了一个变量,而且在函数以外根本没有这个变量的半点踪迹。但是,只要你曾经调用这个函数,那么在脚本接着的地方,你都可以使用这个变量。具体例子如下:大概描述如上:1、调用了函数#!/bin/shtest(){a="1"return}testecho $a显原创 2012-03-09 11:34:13 · 931 阅读 · 0 评论 -
Debug your shell scripts with bashdb
The Bash Debugger Project (bashdb) lets you set breakpoints, inspect variables, perform a backtrace, and step through a bash script line by line. In other words, it provides the features you expect转载 2012-03-09 11:20:22 · 1302 阅读 · 0 评论 -
set $(wc -l $title_file)
These days.i'm learning the shell script for fun.When i read the manual's example like:set $(wc -l $title_file) num_titles=$1 set $(wc -l $tracks_file) num_tracks=$1 And i have the brief转载 2012-03-08 14:21:17 · 1518 阅读 · 0 评论 -
Patch Tips
1. 给源码树加 patch进入源码树的根目录下:cd SRC_DIRpatch -p 1 -p 1 指定忽略的目录个数,如你的patch头为 diff -urN orig/include/linux/module.h tgt/include/linux/module.h,则是对 $SRC_DIR/ 下的 include/linux/modue.h 应用该patch转载 2012-03-07 10:59:13 · 1224 阅读 · 0 评论 -
linux下查看apt-get install命令的默认路径
首先,需要安装一个软件(gdebi),使用以下命令:sudo apt-get install gdebi然后,查看目录(/var/cache/apt/archives),查看你需要弄清楚安装路径情况的软件包:比如我要弄清楚bashdb的具体安装路径:我查看/var/cache/apt/archives后知道,这个安装包的具体名称是:bashdb_4.2.0.6-3_all.de原创 2012-03-07 10:44:08 · 8882 阅读 · 0 评论 -
${parameter:?word} 用法
${parameter:?word} 当parameter指示的参数没有被设值的时候,将会通过标准错误的方式显示word中的语句。参考资料:http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02原创 2012-03-06 15:42:25 · 2667 阅读 · 0 评论 -
seq 使用
seq 使用: seq [OPTION]... LASTseq [OPTION]... FIRST LASTseq [OPTION]... FIRST INCREMENT LAST[chengmo@centos5 ~]$ seq 1000 ‘起始默认是 1,间隔默认也是1 [chengmo@centos5 ~]$seq 2 1000 ‘间隔默认是1 [ch转载 2012-03-06 15:04:49 · 1276 阅读 · 0 评论 -
重装Win7sp1后轻松恢复Ubuntu双系统引导
昨天晚上下载Windows7 Sp1 给台式机重装了下Win7系统,我台式机也是Win7+ubuntu双系统模式,重装win7后导致ubuntu引导丢失,所以利用EasyBCD 2.0.2这个软件来恢复,EasyBCD 2.0.2的使用方法很简单,就像上面图片标注的一样添加一个启动项就OK了,如果这种方法对你系统无效你可以换换其他模式,多测试几次肯定有效的。添加后默认的会先启动Win7后启转载 2012-03-06 09:47:53 · 1189 阅读 · 0 评论 -
exec与文件描述符
在*nux系统中,一般在操作文件时会直接使用文件名,在支持POSIX的各种环境中,提供了一系列用于操作文件的工具,短小精悍却又强大得变态。在shell环境下,还经常文件描述符(正整数)来操作文件。系统默认打开的描述符有3个: 0 - 标准输入 1 - 标准输出 2 - 标准出错所以,只要够斯文(别整太大的数,它不仅难记,而且你不需要),几乎所有的正转载 2012-03-05 10:43:51 · 1495 阅读 · 0 评论 -
linux中shell变量$#,$@,$0,$1,$2的含义解释
增加by Kaiwii:变量说明::表示逻辑的真。比如说在shell中,使用while : do 就相当于JAVA中的while(true)或者while(1)linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID转载 2012-03-05 11:11:11 · 1371 阅读 · 0 评论 -
Android 系统开发学习杂记-基础
本文旨在记录在研究和开发 Android 系统的过程中学习到的星星点点,以备日后之用~ 内容包括:开发环境、安装程序、系统分区、目录概览、进程分析、内核对比。> 开发环境1、安装 Eclipse 和 android-sdk 并解压安装2、Eclipse 安装 AVD 插件 https://dl-ssl.google.com/android/eclipse/ 并配置 SDK Loca转载 2012-04-10 08:07:34 · 1284 阅读 · 0 评论 -
repo超时
下载Android源码是比较简单的事情,我在自己家的电脑上轻松搞定。具体下载步骤此处略去不表,详细步骤请参考Android官网的《Get Android Source Code》一章。 参考网址:http://source.android.com/source/download.html 然而奇怪的是,我在公司的电脑上怎么也下载不下来。我的环境是Windows7下使用V转载 2012-04-10 15:09:59 · 1334 阅读 · 0 评论 -
socket中read、write、send、recv函数的比较
建立好了TCP连接之后,我们就可以把得到的套接字当做文件描述符来使用,由此,想到了网络程序里面的基本的读写函数read和write函数。Write函数Ssize_t write(int fd,const void *buf,size_t nbytes);Write函数将buf中的nbytes字节内容写入到文件描述符中,成功返回写的字节数,失败返回-1.并设置errno变量。在网络程序中转载 2013-01-25 14:20:12 · 1321 阅读 · 0 评论 -
互斥锁----pthread_mutex_t,pthread_mutex_init,pthread_mutex_lock,pthread_mutext_unlock,pthread_mutex_des
Posix互斥锁被声明为具有 pthread_mutex_t 数据类型的变量。如果互斥锁变量是静态分配的,那么可以使用PTHREAD_MUTEX_INITIALIZER来进行初始化。如果互斥锁变量是动态分配的,那么就应该用pthread_mutex_init来进行初始化。初始化::#include int pthread_mutex_init(pthread_mutex转载 2013-01-09 14:52:12 · 1793 阅读 · 0 评论 -
守护进程与setid()
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。 比如,作业规划进程crond,打印进程lpd等。守护进程的编程本身并不复杂,复杂的是各种版本的U转载 2013-01-09 14:17:14 · 5037 阅读 · 0 评论 -
pthread_key_t和pthread_key_create()详解
pthread_key_t和pthread_key_create()详解下面说一下线程中特有的线程存储, Thread Specific Data 。线程存储有什么用了?他是什么意思了?大家都知道,在多线程程序中,所有线程共享程序中的变量。现在有一全局变量,所有线程都可以使用它,改变它的值。而如果每个线程希望能单独拥有它,那么就需要使用线程存储了。表面上看起来这是一个全局变量,所有转载 2013-01-03 15:11:11 · 1886 阅读 · 2 评论 -
如何在C语言中调用shell命令
1、system(执行shell 命令)相关函数 fork,execve,waitpid,popen表头文件 #include定义函数 int system(const char * string);函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-cstring来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程转载 2012-12-11 11:43:40 · 949 阅读 · 0 评论 -
linux中fork()函数详解(原创!!实例讲解)
一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来转载 2012-09-24 09:53:00 · 1176 阅读 · 0 评论 -
深入理解linux下用户态与核心态切换
Linux将内核程序和基于之上的用户程序分开处理,分别运行在用户态和核心态。以32位x86架构为例,虚拟空间共4G,高地址的1G为系统程序运行的核心栈,低地址的3G空间为用户程序运行的用户栈。如果一个用户程序需要调用底层的系统接口,比如printf, malloc等等诸如libc里面的系统调用函数,那么就需要牵涉到用户态与核心态的两个栈切换问题。所有的系统调用函数都是运行在核心态。在系统调转载 2012-10-06 12:18:58 · 2653 阅读 · 0 评论 -
从劫匪的行动来看同步、异步、阻塞、非阻塞
劫匪冲进某花园小别墅,端着AK47,向某衰男甩过去一个袋子:说,快,把现金拿出来给我放进去,这个时候劫匪一直跟着衰男去装钱,看钱装满了他就拿走,此时劫匪是阻塞 的,因为劫匪不能干其他的,得看着这个衰男,免得他搞鬼。想象下,如果劫匪等衰男自己去装钱,在钱装满之前,他自己可以到处翻箱倒柜,找点值钱的首饰黄金之类的,那么这个时候劫匪就是非阻塞 的,因为劫匪并没有阻塞在衰男去装钱这个环节上,劫匪可转载 2012-09-28 11:33:12 · 1747 阅读 · 1 评论 -
ANDROID Bionic C DOCS
Bionic C 库一览:介绍:核心体系:Bionic设计的核心思想是:尽量简单。这意味这这个C库只围绕着内核提供轻量级的包装,我们让它尽量小,不去处理一些细枝末页的事情。 取Bionic这个名字,是因为它由部分BSD和部分linux组成: 它的代码由BSD C库和自定义的linux代码(用于处理线程,进程,信号,和其他事情)混合而转载 2012-09-11 10:54:37 · 1856 阅读 · 0 评论 -
pthread_kill和pthread_cancel
pthread_kill和pthread_cancel为了讲述标题两个函数,必须先介绍一下pthread线程库。pthread线程库是遵循POSIX标准开发的,工作非常稳定,性能也不差,所以在Linux下是最常用的线程库。但从调用上看,pthread线程应该仍然属于用户级的线程库,其实用户级还是内核级的关键区别只在于线程的调度是由内核还是用户库来完成,用户级对于一般的服务器工作转载 2012-07-05 16:05:48 · 23745 阅读 · 5 评论 -
转一些Linux进程间通信的(IPC)的一些文章(来源于IBM developerworks)
最近要用到Linux进程间通信,从网上看到一个绝好的资料,是郑彦兴博士发表在IBM developerworks上的一系列文章,讲述了管道、信号、消息队列、共享内存几种通信方式。IBM developerworks上的文章向来都是精品,值得认真的去品读。深刻理解Linux进程间通信: 深刻理解Linux进程间通信Linux环境进程间通信(一): 管道及有名管道Linux转载 2012-06-21 08:54:12 · 1573 阅读 · 0 评论 -
linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
原文链接:http://blog.youkuaiyun.com/xdw1985829/article/details/6833319 前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式——在一个独立的文件夹通过makefile配合内核源码路径完成 那么如何将驱动直接编译进内核呢? 在我们实际内核的移植配置过程中经常听说的内转载 2012-05-08 11:25:56 · 1045 阅读 · 0 评论 -
android kernel编译问题积累与解决
1、错误信息:ERROR: the symlink include/asm points to asm-x86 but asm-arm was expected set ARCH or save .config and run 'make mrproper' to fix it make: *** [include/asm] 错误 1最后发现,将li原创 2012-05-08 08:52:45 · 1389 阅读 · 0 评论 -
Linux ARM Cross Compile On Intel x86
Linux ARM Cross Compile On Intel x86For the complete list of my articles on Android devices and software, including analysis of devices and system firmware, lists of external resources and tools,翻译 2012-05-04 07:46:22 · 5320 阅读 · 0 评论 -
bash读取启动文件问题-bash_profile
估计阅读完老外的这段解释,应该都明白了吧……if you open Nautilus, the file browser, go to your HOME directory and press CTRL+H you will see then all the hidden files (Since hidden files start with the DOT . character).转载 2012-03-01 11:25:11 · 2059 阅读 · 0 评论 -
初始化0号进程
arch/x86/kernel/head_32.S的336行,进入分页后的内核代码段,执行lss stack_start,%esp指令,立即为进程0建立内核态堆栈。stack_start定义在657行:657 ENTRY(stack_start)658 .long init_thread_union+THREAD_SIZE659 .long __BOOT_D转载 2012-02-29 15:31:53 · 1785 阅读 · 0 评论 -
uImage,zImage,bzImage小解 (System.map、vmlinuz、initrd-2.4.7-10.img理解)
在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux 内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行。 编译过RedHat Linux内核的人对其中的System.map、vmlinu转载 2011-11-10 11:13:44 · 1310 阅读 · 0 评论 -
/proc目录详解
内容摘要:Linux系统上的/proc目录是一种文件系统,即proc文件系统。Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。基于/转载 2011-11-10 09:19:33 · 870 阅读 · 0 评论 -
Linux命令学习手册-chroot命令(基本应用)
参考这篇文章吧:在网上找了很久,就这篇:http://www.docin.com/p-119147111.html转载 2011-11-10 10:25:30 · 1799 阅读 · 0 评论 -
GRUB安装,配置及使用汇总
(一)安装linux时安装grub. 安装redhat linux时会提示安装引导程序,如果选择grub为引导程序,建议把grub安装到硬盘的引导扇区MBR.grub 还可以引导其它操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT、2000、XP。 (二)grub的配置 一旦选择了grub转载 2011-11-09 10:12:15 · 882 阅读 · 0 评论 -
GRUB和LILO的区别
从普通的桌面用户到 Linux?系统管理员,大部分 Linux 用户都使用过一种名为引导加载程序的工具。此类工具的不同变种会提供不同层次的支持和功能。在很多情况下,Linux 发行版默认安装的引导加载程序并不总是适合需要;每个引导加载程序的默认设置也是如此。在本文中,Laurence Bonney 讨论了两个流行的引导加载程序 —— LILO 和 GRUB —— 的优点和缺点,并建议了很多配置,以转载 2011-11-10 07:43:31 · 2515 阅读 · 0 评论 -
Linux下/etc/fstab文件详解
有很多人经常修改/etc/fstab文件,但是其中却有很多人对这个文件所表达的意义不太清楚,因为只要按照一定的模式,就可以轻而易举地添加一行挂载信息,而不需要完全理解其中的原理。下面就让我们来看看到底还有多少是我们不了解的。 /etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /et转载 2011-11-09 09:42:49 · 842 阅读 · 0 评论