![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 76
liuyahui312031
这个作者很懒,什么都没留下…
展开
-
linux C程序中获取shell脚本输出
<br /><br /><br />本文描述了从Linux程序中执行shell(程序、脚本)并获得输出结果的方法。<br />--------------------------------------------------------------------------------<br />1. 前言<br />2. 使用临时文件<br />3. 使用匿名管道<br />4. 使用popen<br />5. 小结<br />1. 前言<br /> Unix界有一句名言:“一行shell脚本胜过万原创 2010-11-29 11:56:00 · 993 阅读 · 1 评论 -
我理解的逻辑地址、线性地址、物理地址和虚拟地址(补充完整了)
<br />本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。<br /><br />一、概念<br /><br />物理地址(physical address)<br />用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。<br />——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事转载 2011-03-09 15:02:00 · 554 阅读 · 0 评论 -
Linux: fd_set用法
<br /><br />select()机制中提供一fd_set的数据结构,实际上是一long类型的数组,每一个数组元素都能与一打开的文件句柄(不管是socket句柄,还是其他文件或命名管道或设备句柄)建立联系,建立联系的工作由程序员完成,当调用select()时,由内核根据IO状态修改fe_set的内容,由此来通知执行了select()的进程哪一socket或文件可读。<br /> 多端口复用函数select在调用前要首先设置监听的端口数目,FD_ZERO是清空端口集,FD_SET是设置端口集。<b转载 2011-03-04 13:26:00 · 825 阅读 · 0 评论 -
两个与Android IPC有关的问题
<br /><br /> <br /> <br />1.文件描述符是如何在进程之间传递的?<br />我们知道文件描述符,就像虚拟内存的地址一样,是进程私有的资源。在一个进程中文件描述符,在另外一个进程中,可能是无效的,也可能是对应另外一个文件。 Android却可以把文件描述符从一个进程传到另外一个进程。第一次发现这种情况时,让我感到很惊奇,所以花了点时间去研究。看明白之后,发现其实现也很简单:status_t Parcel::writeFileDescriptor(int fd){ flat_转载 2011-01-25 17:59:00 · 863 阅读 · 0 评论 -
Linux 2.6内核Makefile浅析
<br />1 概述<br />Makefile由五个部分组成:Makefile:根目录Makefile,它读取.config文件,并负责创建vmlinux(内核镜像)和modules(模块文件)。.config:内核配置文件(一般由make menuconfig生成)。arch/$(ARCH)/Makefile:目标处理器的Makefile。scripts/Makefile.*:所有kbuild Makefile的规则,它们包含了定义/规则等。kbuild Makefiles:每个子目录都有kbuild原创 2010-12-10 17:25:00 · 2138 阅读 · 0 评论 -
jni / C for android 技术总揽
<br />Android编译环境(1) - 编译Native C的helloworld模块<br /><br /><br />Android编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才有Makefile文件,而其他的每个component都使用统一标准的Android.mk. Android.mk文件本身是比较简单的,不过它并不是我们熟悉的Makefile,而是经过了Android自身编译系统的很多处理,因此要真正理清楚其中的联系还比较复杂,不过这种方式的好处在于,编写一个新的Androi转载 2010-12-02 14:11:00 · 464 阅读 · 0 评论 -
两个特殊设备文件dev/zero dev/null
<br /><br />/dev/null:<br /><br />In Unix-like operating systems, /dev/null or the null device is a special file that discards all data written to it, and provides no data to any process that reads from it (it returns EOF). In Unix programmer jargon, it ma原创 2010-12-02 11:18:00 · 704 阅读 · 0 评论 -
2.6内核下的设备文件
<br />概述 <br />设备管理是linux中比较基础的东西,但是由于Linux智能程度的越来越高,udev的使用越来越广泛,使得越来越多的Linux新用户对 /dev 目录下的东西变得不再熟悉。 <br />Linux 中的设备有2种类型:字符设备(无缓冲且只能顺序存取)、块设备(有缓冲且可以随机存取)。每个字符设备和块设备都必须有主、次设备号,主设备号相同的设 备是同类设备(使用同一个驱动程序)。这些设备中,有些设备是对实际存在的物理硬件的抽象,而有些设备则是内核自身提供的功能(不依赖于特定的物理转载 2010-12-02 11:36:00 · 448 阅读 · 0 评论 -
Linux 常用C函数说明-内存及字符串操作篇(中文版)
<br />strrchr(查找字符串中最后出现的指定字符)<br />相关函数<br /> index,memchr,rindex,strpbrk,strsep,strspn,strstr,strtok<br />表头文件<br /> #include<string.h><br />定义函数<br /> char * strrchr(const char *s, int c);<br />函数说明<br /> strrchr()用来找出参数s字符串中最后一个出现的参数c地址,然后将该字符出现的地址返回。<转载 2010-12-02 11:44:00 · 675 阅读 · 0 评论 -
整理一些常用的命令(适合初学者)
<br />inux中tail命令---用于查看文件内容<br /><br />最基本的是cat、more和less。<br />1. 如果你只想看文件的前5行,可以使用head命令,如:<br />head -5 /etc/passwd<br />2. 如果你想查看文件的后10行,可以使用tail命令,如:<br />tail -2 /etc/passwd 或 tail -n 2 /etc/passwd<br />tail -f /var/log/messages<br />参数-f使tail不停地去读最原创 2010-12-01 16:58:00 · 3505 阅读 · 0 评论 -
unix_c++学习笔记
<br />1. 用户登录:<br />(1)根据用户名确定身份 权限<br />(2)验证密码<br />(3)创建shell<br />(4)用户主目录<br />2. 了解自己的环境变量<br /><br />#include<iostream><br />using namespace std;<br /><br />int main( int argc, char* argv[], char* env[] ){<br />cout<<" ---------------begin----------原创 2010-11-29 14:40:00 · 362 阅读 · 0 评论 -
system()函数
<br /> system()函数功能强大,很多人用却对它的原理知之甚少先看linux版system函数的源码:<br /><br /><br />#include <sys/types.h><br />#include <sys/wait.h><br />#include <errno.h><br />#include <unistd.h><br /><br />int system(const char * cmdstring)<br /><br />{<br /> pid_t pid;<br转载 2010-11-29 13:05:00 · 938 阅读 · 0 评论 -
stat,fstat以及lstat函数
<br /><br /> 本章的讨论的中心是三个stat函数以及它们所返回的信息。<br /><br /> #include <sys/stat.h><br /> int stat(const char*pathname,struct stat*buf);<br /> int fstat(int filedes,struct stat*buf);<br /> int lstat(const char *pathname,struct stat*buf原创 2010-11-29 15:02:00 · 430 阅读 · 0 评论 -
sprintf,snprintf的用法(可以作为linux中itoa函数的补充)
<br /><br />sprintf() 格式化输出函数(图形)<br />功能: 函数sprintf()用来作格式化的输出。<br />用法: 此函数调用方式为int sprintf(char *string,char *format,arg_list);<br />说明: 函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组),然后再调用 outtextxy()函数将串里的字符显示在屏幕上。arg_list为参数表,可有不定个数。原创 2010-11-29 15:32:00 · 840 阅读 · 0 评论 -
《Linux性能及调优指南》1.2 Linux内存结构【原创翻译】
<br /><br />原文名称:《Linux Performance and Tuning Guidelines》<br />原文地址:http://www.redbooks.ibm.com/abstracts/redp4285.html<br />-------------------------------------------------------------------------------------------<br />1.2.1 物理内存与虚拟内存<br />1.2.2 虚拟内存管理转载 2011-03-09 15:54:00 · 946 阅读 · 0 评论