Welcome 微信登录

首页 / 操作系统 / Linux

Linux下获得CPU利用率和内存使用情况(C实现)

Linux下获得CPU利用率和内存使用情况(C实现)

在Linux中如果要监视一个进程的运行情况,如查看它的CPU使用效率和内存使用情况,就需要从系统的/proc目录的读取一些系统信息。然后分析得到结果,特别是在嵌入式中的应用程序这个功能就很重要。本文中的代码是从top命令的源代码分析中获得,并做了部分修改,在FC6+GCC4.1调试通过。从这个工程中我也获得一些感悟。1. Linux系统很优雅,如果在Windows中做这个功能就需要调用ActiveX控件。而在Linux中只需要读取文本。2.想完成什么功能,...
利用Shell或其他脚本语言在Apache下写CGI

利用Shell或其他脚本语言在Apache下写CGI

本文从最基本的流程来介绍一下如何配置Apache使其支持CGI,并用Bash和Python写一个Hello World的动态CGI程序。以下的Apache配置以红帽系的Linux为准。配置Apache首先需要确认Apache里面的CGI模块已经被载入,一般在/etc/httpd/conf/httpd.conf里面的会有下面这句话:LoadModule cgi_module modules/mod_cgi.so 然后在httpd.conf里面(一般是最后)加...
C里面的scanf对于空白字符的处理

C里面的scanf对于空白字符的处理

写了点C的程序,写到scanf的时候,对于空白字符的处理有点迷惑,于是做了点小实验,并查了资料,在这里详细说说。在scanf里面的第一个参数——格式化字符串s里面的空白字符的作用是对于输入里面的空白字符进行匹配。在s里面的连续空白字符都会被当成一个空白字符处理。而一个空白字符对应输入里面的一段连续空白字符。当进行匹配的时候,他会一直匹配到下一个非空字符的出现才停止。所以,如果有下面的语句:int tmp;scanf("%d ", &tmp);而输入...
Linux里的函数库(Library)

Linux里的函数库(Library)

在Linux里面,有2种基本的库的形式: Static: 静态的库,一般称为archive,就是将多个object file合并成一个文件,然后在程序编译的时候静态链接,并且将使用的函数静态的写入最终的可执行程序里面。 Dynamic:动态库。 程序静态的调用,但是具体的调用过程是在动态加载的。 函数库完全动态的加载,在编译的时候完全不需要有函数的链接过程出现。适合用来进行plugin模式的开发。 这里主要是讲动态库的问题。如何生成动态库:当编辑好动态库的...
8大你不得不知的Android调试工具

8大你不得不知的Android调试工具

1. 查看当前堆栈1) 功能:在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系2) 方法: new Exception(“print trace”).printStackTrace();2. MethodTracing1) 功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函数调用关系等2) 方法:a) 在程序代码中加入追踪开关importAndroid.os.Debug; …… android.os.Debug.s...
对于Linux下fork调用的理解

对于Linux下fork调用的理解

如果你想了解fork函数,首先要先搞清楚进程是什么。其实,我们都会背诵教科书上的答案,进程是“进行中的程序”,但是我究竟如何理解“进行中”呢?我觉得《Modern Operating System》在关于进程概念的阐述上有一个很有趣的比方:菜谱是程序,做菜是进程。我们首先拥有一份菜谱,但是我们并没有原料,也没有实在的动作。要想把菜谱上的菜实现出来,就必须要有原料和动作。反映到进程的概念上来就是:我们必须获得各种各样可以是程序跑起来的资源,比如cpu,内存,...
解决QT-4.4.3编译qvfb的问题

解决QT-4.4.3编译qvfb的问题

在虚拟机上安装QT开发环境真是一件郁闷的事情。遇到的第一个问题就是虚拟盘空间不够,编译后1G多。这些天折腾完总算挺过来了。先下载qt-embedded-4.4.3,安装完后发现没有qvfb,原来qvfb只在qt/X11中有,没办法,再下载qt/X11-4.4.3来编译。编译完了发现根本在qt-x11-opensource-src-4.4.3/bin/下面哪里有 qvfb???根本没有。在qt-x11-opensource-src-4.4.3/tools/下...
C#下调用DOS程序的一些经验

C#下调用DOS程序的一些经验

首先DOS下的程序运行的时候对于其路径的长度是有要求的。如果路径过长,系统会提示无法运行该程序,这个时候把程序挪个位置就好了。其次,在把DOS程序嵌入自己的程序的时候,通常要进行一下几个步骤1、建立一个新的线程DOS程序要以一个新线程的形式运行,因此要创建System.Diagnostics.Process类。2、设置线程属性通常为了不让DOS程序在运行的时候弹出多余的窗口,通常会设置以下属性System.Diagnostics.Process.Start...
Linux 下C语言的编程

Linux 下C语言的编程

本文介绍了Linux的C开发环境的构成和安装,使读者对Linux的C开发环境能有初步的了解。 你了解Linux吗?相信现在越来越多的人会说“是”的。那么你了解到何种程度呢?不可否认,目前决大多 数的Linux用户对Linux的了解还处于比较低级的层次,他们可能会几条命令、会配几种服务、会用rpm来安装软件、会操作KDE/Gnome界机等等,但是当他们遇到一些需要编译安装的软件时,面对一些简单的出错信息,他们就手足无措了。要想真正跨跃这些初级层次,你就...
Java Clone方法之懒人实现

Java Clone方法之懒人实现

在Java的Object类中定义了(protected)clone()方法,如果自己的类需要clone方法的话需要实现Cloneable接口,并重写clone()方法和将方法访问级别改为(public)。但是如果自己的类如果属性比较多,重写clone方法还是会花去不少时间,更重要的是以后增加或者删除属性的时候也要相应修改clone方法,总的来说还是比较麻烦的。这里如果对性能不太计较的话,其实可以有一个简单快速的方法实现clone方法,就是使用Java语言的...
<< 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 >>