linux C程序中获取shell脚本输出(如获取system命令输出) ,Unix 界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个 ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令。但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果。例如, 执行外部命令ping后,如果执行失败,我们希望得到ping的返回信息。
2. 使用临时文[......]
linux查看磁盘空间df命令方法实例介绍
linux查看磁盘空间命令方法实例介绍。
一、df 命令;
df 是来自于coreutils 软件包,系统安装时,就自带的;我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置;
举例:
[root@localhost beinan]# df -lh
Filesystem 容量 已用 可用 已用% 挂载点
/dev/hda8 11G 6.0G 4.4G 58% /
/dev/shm 236M 0 236M 0% /dev/shm
/dev/sda1 56G 22G 35G 39% /mnt/sda1
我们从中可以看到,系统安装在/dev/hda8 ;还有一个56[......]
Linux下查看UUID方法介绍
Linux下查看UUID方法介绍。
1. sudo blkid
/dev/sda1: UUID=”9ADAAB4DDAAB250B” TYPE=”ntfs”
/dev/sdb1: UUID=”B2FCDCFBFCDCBAB5″ TYPE=”ntfs”
/dev/sdb5: UUID=”46FC5C74FC5C5FEB” TYPE=”ntfs”
/dev/sdb6: TYPE=”swap” UUID=”2cec6109-5bcf-45a3-ba1b-978b041c037f”
/dev/sdb8: UUID=”9ee6f22d-b394-422c-9b4a-1525a3220[......]
gdb如何调试GCC程序
gdb如何调试GCC程序,实例教程。用 gdb 调试 GCC 程序,Linux 包含了一个叫 gdb 的 GNU 调试程序. gdb 是一个用来调试 C 和 C++ 程序的强力调试器. 它使你能在程序运行时观察程序的内部结构和内存的使用情况. 以下是 gdb 所提供的一些功能:
它使你能监视你程序中变量的值.
它使你能设置断点以使程序在指定的代码行上停止执行.
它使你能一行行的执行你的代码.
在命令行上键入 gdb 并按回车键就可以运行 gdb 了, 如果一切正常的话, gdb 将被启动并且你将在屏幕上看到类似的内容:
GDB is free software and you[......]
KDB介绍和使用
KDB介绍和使用。
Introduction and basic resources
Here is some information about KDB – the in-kernel debugger for the Linux kernel.
The KDB and KGDB official wiki: https://kgdb.wiki.kernel.org/ (this only has 2 pages?)
Jason Wessel is the current KDB maintainer. Here is a presentation from him at[......]
fedora模块创建实例教程
fedora模块创建实例教程。
步骤:
(1)make
(2)insmod hello.ko 创建模块,hello与makefile中**.o对应
(3)lsmod 查看已有模块
(4)rmmod hello 删除模块
(5)make clean 清楚文件
1,一个文件
hello.c
#include <linux/init.h>
#include <linux/module.h>
static int hello_init(void)
{
printk(KERN_WARNING”Hello,world !\n”);
return[......]
fedora中printk无法输出到控制台怎么解决
fedora中printk无法输出到控制台怎么解决。相信很多人在第一次接触到linux驱动程序的时候都遇到了两个基本的问题。
1.不知道怎么编译才能编译出linux模块程序。
2.写自己第一个linux驱动程序的时候,发现printk并不会向我们想想的那样把log信息显示在我们的终端上。
我自己也同样遇到了两个问题。
现在和大家分享下我从中学到的,当然肯定是不全面的。
1.linux模块的编译方法。
如果是一个简单的测试程序那么Makefile中只需要一个简单的语句就行了,就用LDD3中的hello world模块测试程序举例,Makefile文件中只需要一句obj-m[......]
printk X messages suppressed介绍
printk X messages suppressed介绍。X为自然数
echo 0 > /proc/sys/kernel/printk_ratelimit
由于某些原因,频繁设置循环调用某个printk的语句,将会造成CPU的拥堵,如果输入终端是慢速,就会造成拥堵,我们也不可能从这种狂刷屏幕上读取到什么有效信息,基本上就看不清。内核编程提供了一下保护机制。下面是一个测试的例子:
1 for (i = 0 ; i < 1000; i ++){
2 if(printk_ratelimit()){
3 printk(KERN_DEBUG “Test for ra[......]
kdb编译安装使用完全手册与教程
kdb编译安装使用完全手册与教程。
编译kdb。
步骤1:
kdb不是Linux内核的标准配置,需要先到这个网站上去下载一个版本,2个文件
ftp://oss.sgi.com/projects/kdb/download/v4.4/
kdb-v4.4-2.6.15-common-1(kdb-v4.4-2.6.15-common-1.bz2)
kdb-v4.4-2.6.15-i386-1(kdb-v4.4-2.6.15-i386-1.bz2)
步骤2:
下载一个纯的linux内核源码文件,网址太多的,不说了
记住,一定要是纯的linux内核源码,不能是什么redhat等等[......]
Linux RAR安装与使用教程
Linux RAR安装与使用教程。Linux默认自带ZIP压缩,最大支持4GB压缩,RAR的压缩比大于4GB.
流程:下载 》安装 》 使用
————————————————– 下载
# wget http://www.rarsoft.com/rar_CN/rarlinux-3.9.3.tar.gz
–16:01:50– http://www.rarsoft.com/rar_CN/rarlinux-3.9.3.tar.gz
Resolving www.rarsoft.com… 217.70.129.242[......]