摘要:
1,这两个概念都是简称,指针函数是指带指针的函数,即本质是一个函数。我们知道函数都又返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针。其定义格式如下所示: 返回类型标识符 *返回名称(形式参数表) { 函数体 } 返 回类型可以是任何基本类型和复合类型。返回指针的函数的用途十分广泛。事实上,每一个函数,即使它不带有返回某种类型的指针,它本身都有一个入口地址,该 地址相当于一个指针。比如函数返回一个整型值,实际上也相当于返回一个指针变量的值,不过这时的变量是函数本身而已,而整个函数相当于一个“变量”。例如 下面一个返回指针函数的例子: 1 #include 2 ... 阅读全文
摘要:
大凡刚刚接触C语言的人,最头疼的就是指针和链表了,别的变量里存放的都是“正而八经”的值,这指针呢,偏偏存的就是一地址,用起来还有声明和定义之别, 声明是有“*”号的,赋其地址值,定义时是无“*”号方可赋地址值。由于可以直接给其赋内存地址,初学者稍有不慎,这指针便如群魔乱舞,使编译者错误迭 出。这时初学者不禁扼腕兴叹,要是没有指针多好!指针有什么用?然而指针被喻为C语言的精华,自有其必然之处,例如:1 void fun(int a)2 {3 a=20;4 }5 void main()6 {7 int a = 10;8 fun(a)9 }想让a变成20,若把a作为实参直接传进去经... 阅读全文
摘要:
一. yum是什么yum = Yellow dog Updater, Modified 主要功能是更方便的添加/删除/更新RPM包. 它能自动解决包的倚赖性问题. 它能便于管理大量系统的更新问题 二. yum特点 *可以同时配置多个资源库(Repository) *简洁的配置文件(/etc/yum.conf *自动解决增加或删除rpm包时遇到的倚赖性问题 *使用方便 *保持与RPM数据库的一致性 三. yum安装 CentOS自带(yum-*.noarch.rpm) #rpm -ivh yum-*.noarch.rpm 四. yum指令 注:当第一次使用yum或yum资源库有更新时,yum会自 阅读全文
摘要:
1、删除已经缓存的yum站点信息 # sudo yum clean all 2、安装fastestmirror,让yum自动找最快的源进行下载 # sudo yum -y install yum-fastestmirror 3、在修改/etc/yum.repos.d/*.repo文件, 每个文件的mirror×××××那行(一般是第5行)的最后面加上“&country=us”,即选择美国的服务器,因为美国的服务器最多,同 时速度基本上是最快的(可选,因为,我没有对比过) 经过这样的设置,我的yum速度从平均 6k/s - 20k/s 提 阅读全文
摘要:
由于Fedora更新升级非常的频繁, 所以, 非常有必要清除陈旧的内核,方法如下:1. 查看当前系统中已安装的内核相关包:[root@knityster ~]# rpm -qa | grep kernelkernel-headers-2.6.32.12-115.fc12.i686kernel-firmware-2.6.32.12-115.fc12.noarchkernel-PAE-devel-2.6.32.11-99.fc12.i686kernel-devel-2.6.32.12-115.fc12.i686kernel-PAE-2.6.32.11-99.fc12.i686kernel-PAE- 阅读全文
摘要:
有时候,我们必须不希望某些软件自动更新到最新版本。那么,如何防止yum自动更新apache,php,mysql等? 方法: vi /etc/yum.conf 在[main]增加如下一行: exclude=bind-chroot apache* pure-ftpd* mod_ssl* spamassassin* httpd* ruby* proftpd* courier* php* mysql* exim* ctohome.com* nsd* dovecot* squirr elmail* 看到了吧,exclude里面的所有软件,都不会被yum成最新版了。 比如,yum insta... 阅读全文
摘要:
在windows 下几乎所有的应用软件都提供了安装程序,如setup.exe、install.exe,大家只要双击然后一路“下一步”就行了,但是在linux 下很少有软件是通过这种方式安装的,因为linux 下的应用软件多是源码包方式,需要用户手工编译安装,在本章向大家讲解如何在linux 安装软件,另外在fedora 中大家也会发现提供了一个“添加/删除软件”的功能,但是只能联网使用。1_ ?*x T ~ E b-VT3} } L D Y I/W P W 1 具有安装程序软件的安装 前面说了,linux 软件很少有像windows 软件那样双击exe然后一路“下一步”,但并不是没有,如优.. 阅读全文
摘要:
关闭Linux响铃1. 关闭shell中的响铃 整体关闭 vi /etc/inputrc 添加 set bell-style=none set bell-style none set bell-style off 关闭个人用户 vi ~/.inputrc 添加 set bell-style=none2. 关闭vi和vim中的响铃 vi /etc/vimrc vi /etc/virc 打开上面这两个文件后添加 set vb t_vb=在X Window系统下,可以使用xset 命令为之,命令如下: xset b off (输入xset 回车后得到xset命令的选项)在linux中控... 阅读全文
摘要:
月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历,我在把他的心得做了不多的增改,并根据我的经历增加了“进阶”一节。这是一篇由新手和我这个老家伙根据我们的经历完成的文章。我的这个朋友把这篇文章取名叫Build Your ProgrammingTechni 阅读全文
摘要:
用虚拟机玩游戏的方法!! 开3D加速!用虚拟机玩游戏的方法!! 开3D加速! 曾经用过一些不同虚拟机结果大多都不支持3D驱动,所以导致虚拟机是不能够玩游戏的! 今天给大家带来的是用虚拟机玩游戏的方法!! 虚拟机软件:VMWare虚拟机,版本最好是在5.5以上 硬件要求, CPU2.4以上,内存在512以上,512的朋友可以试试 比这个低配置的朋友就不要浪费时间了! 最好显卡是128以上的,本人的是256的显卡 虚拟机安装的系统可以是2000和XP,98好像开3D有问题,就酸把Direct X9.0装上也好像不行 所以建议用2000或XP 然后找到你虚拟机的扩展名为 .vmx的文件 (什么,找不 阅读全文
摘要:
今天自己在开发板上移植了boa服务器。参考资料是李驹光、郑耿大侠在恒颐论坛上的帖子。李大侠写的好,我没有费什么力气就搞定了,:-)。步骤如下:1.从http://www.boa.org/下载Boa源码,将其解压并进入源码目录的src子目录# tar -zxvf boa-0.94.13.tar.gz# cd boa-0.94.13/src2.生成Makefile文件# ./configure修改Makefile文件,a.找到CC=gcc,将其改成CC = arm-linux-gcc,b.找到CPP = gcc –E,将其改成CPP = arm-linux-gcc –E,保存退出。3.运行make 阅读全文
摘要:
编译一个linux下的c系统,包含词法和语法分析模块,Linux上用bison和flex。 yacc是一个文法分析器的生成器,bison即是yacc的GNU版本.Lex和YACC是用于构造词法分析机和语法解释器的工具,利用Lex和YACC你可以轻松的构造一个语法解释器。 一开始make 错误1: debian:/home/a/boa-0.94.13/src# make yacc -d boa_grammar.y make: yacc: Command not found make: *** [y.tab.c] Error 127 解决方法: debian:/... 阅读全文
摘要:
strstr函数2008年08月02日 星期六 10:30函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例:#include <stdio.h> #include <string.h>int main(void) { char string[10]; char *str1 = "abcdefghi 阅读全文
摘要:
要修改arm开发板的IP,如果是yaffs2文件,可以1、首先要修改/etc/init.d/rcS文件,在/sbin/ifconfig lo 127.0.0.0下添加一行/sbin/ifconfig eth0 192.168.1.20 up注:192.168.1.20 只是举例,可以改成你想要修改的IP地址本来这样修改之后就可以的,但是我发现仍然不行,使用ifconfig命令,发现开发板IP地址没有被更改过来。后来无心插柳,发现还需要修改另一处2、修改/etc/eth0-setting将其IP地址改成你想要设置的IP重启开发板,使用ifconfig命令,就发现IP地址已经修改过来了。 阅读全文
摘要:
目前正在研究SmartArm3250的Linux驱动方面,所以首先就要在开发板上安装(也可以称为下载)Linux系统,按照书上的步骤,遇到一些小问题,通过多次试验和总结,现在可以熟练的安装Linux系统了,总结一下,其中包含个人的见解和自己找到的资料。首先,介绍一下安装Linux的大致步骤。开发板就像一个裸机一样,什么都没有(当然有硬件),首先要安装一个类似于电脑中BIOS一样的东西,还 有一个引导操作系统的东西,然后就是装入内核镜像,不是.iso文件哦,是编译内核生成的一个东东,最后就是一个文件系统,类似于电脑中的各个分区,也可 以理解成光是C盘的各种东西,而与电脑中安装系统的不同之处在于, 阅读全文
摘要:
用C语言编写cgi程序的话,多半会用到CGIC。 这是个非常流行的库,遇到文件上传之类的应用更是离不开它。官方页面及下载地址为:www.boutell.com/cgic/#obtain不少网站都有文件上传的功能,本文展示如何用CGIC库编写文件上传的服务端程序,最后给出一段简单的HTML代码,供大家测试使用 。下载: upload.c#include<stdio.h>#include<string.h>#include<unistd.h>#include<fcntl.h>#include<sys/stat.h>#include&quo 阅读全文
摘要:
1功能说明strace命令是一种强大的工具,能够显示任何由用户空间程式发出的系统调用.strace显示这些调用的参数并返回符号形式的值.strace从内核接收信息,而且无需以任何特别的方式来构建内核.strace的每一行输出包括系统调用名称,然后是参数和返回值.下面记录几个常用option:-f-F选项告诉strace同时跟踪fork和vfork出来的进程-oxxx.txt输出到某个文档.-eexecve只记录execve这类系统调用. 2详细用法usage:strace[-dffhiqrtttTvVxx][-acolumn][-eexpr]...[-ofile][-ppid]...[-sst 阅读全文
摘要:
如何获取Linux内核源代码如何获取Linux内核源代码下载Linux内核当然要去官方网站了,网站提供了两种文件下载,一种是完整的Linux内核,另一种是内核增量补丁,它们都是tar归档压缩包。除非你有特别的原因需要使用旧版本的Linux内核,否则你应该总是升级到最新版本。使用Git由Linus领头的内核开发队伍从几年前就开始使用Git版本控制系统管理Linux内核了(参考阅读:什么是Git?),而Git项目本身也是由Linus创建的,它和传统的CVS不一样,Git是分布式的,因此它的用法和工作流程很多开发人员可能会感到很陌生,但我强烈建议使用Git下载和管理Linux内核源代码。你可以使用下 阅读全文
摘要:
1、execve系统调用用来执行参数filename字符串所代表的文件路径int execve(const char * filename,char * const argv[ ],char * const envp[ ]);2、brk & sbrk 系统调用库过程brk和sbrk用来调整数据段的上限3、access系统调用检查调用进程是否可以对指定的文件执行某种操作4、mmap系统调用void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset); 参数fd为即将映射到进程空间的文件描述字,一 阅读全文
摘要:
什么是Oops?从语言学的角度说,Oops应该是一个拟声词。当出了点小事故,或者做了比较尴尬的事之后,你可以说"Oops",翻译成中国话就叫做“哎呦”。“哎呦,对不起,对不起,我真不是故意打碎您的杯子的”。看,Oops就是这个意思。在Linux内核开发中的Oops是什么呢?其实,它和上面的解释也没什么本质的差别,只不过说话的主角变成了Linux。当某些比较致命的问题出现时,我们的Linux内核也会抱歉的对我们说:“哎呦(Oops),对不起,我把事情搞砸了”。Linux内核在发生kernel panic时会打印出Oops信息,把目前的寄存器状态、堆栈内容、以及完整的Call 阅读全文