c编程在linux下才有意义
今天为了给顶嵌杯做准备又回到linux下开始c编程了。刚开始是练习写一个与矩阵变换有关的程序,为了节省时间有一个函数模块是直接用的以前在windows下编程时所使用的。结果在linux下编译完运行之后很快就崩溃了,由于调试水平不高弄了很久也不知到问题出在哪里。正在百思不得其解时忽然注意到(当然不是自己调试出来的)原来是自己在矩阵转置的时候没有修改这个矩阵对应的内存,于是就导致了内存访问异常。我晕了以前在windows下面这个函数模块经常被调用几十几百次都没提示什么,在这里一次就导致了程序的崩溃。不得不佩服linux的内存管理机制是多么的完善。
如果不是在linux下使用了这个模块还以为那个模块是对的呢。这太危险了,我想,虽然无论在哪里这类错误编译器是不会直接给出错误或警告的,但是在垃圾的windows下运行次数少的时候程序不会有内存访问异常的提示,如果这是大型的软件的其中一个模块一旦运行时间长了就会导致内存耗尽以至死机的现象出现。。。 而在linux下就不会出现类似的问题,因为一旦有内存访问异常(即使只有一个字节)在运行的时候也会给出出错标志,这对于锻炼人的动态内存使用能力是很有用的,而且在嵌入式(内存资源没有pc上那么丰富)编程时还会避免很多的问题出现。
相关文档:
开机按[CTRL]+[ALT]+[F7]/[F8]可查看系统启动时正在启动的服务!!!!
众所周知Linux给我们提供了7中不同的启动级别0~6,那么不同的启动级别都会启动那些服务哪。可以使用chkconfig ——list 查看,可以使用chkconfig 服务名 ——level 3 {on|of}修改是否要再某个级别启动或停止。
1. 例 ......
编译和连接程序
MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项.
1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项.
$ mysql_config --libs
2. --cflags 选项 - 使用必要的include文件的选项等等.
......
typedef struct siginfo
{
int si_signo; /* Signal number.*/
&n ......
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. setmem函数
setmem函数的功能是存值到存储区,其用法为:void setmem(void *addr, int len, char value);程序实例如下:
#include <stdio.h& ......
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. setwritemode函数
setwritemode函数的功能是设置图形方式下画线的输出模式,其用法为:void far setwritemode(int mode);程序实例如下:
#include < ......