c编程在linux下才有意义
今天为了给顶嵌杯做准备又回到linux下开始c编程了。刚开始是练习写一个与矩阵变换有关的程序,为了节省时间有一个函数模块是直接用的以前在windows下编程时所使用的。结果在linux下编译完运行之后很快就崩溃了,由于调试水平不高弄了很久也不知到问题出在哪里。正在百思不得其解时忽然注意到(当然不是自己调试出来的)原来是自己在矩阵转置的时候没有修改这个矩阵对应的内存,于是就导致了内存访问异常。我晕了以前在windows下面这个函数模块经常被调用几十几百次都没提示什么,在这里一次就导致了程序的崩溃。不得不佩服linux的内存管理机制是多么的完善。
如果不是在linux下使用了这个模块还以为那个模块是对的呢。这太危险了,我想,虽然无论在哪里这类错误编译器是不会直接给出错误或警告的,但是在垃圾的windows下运行次数少的时候程序不会有内存访问异常的提示,如果这是大型的软件的其中一个模块一旦运行时间长了就会导致内存耗尽以至死机的现象出现。。。 而在linux下就不会出现类似的问题,因为一旦有内存访问异常(即使只有一个字节)在运行的时候也会给出出错标志,这对于锻炼人的动态内存使用能力是很有用的,而且在嵌入式(内存资源没有pc上那么丰富)编程时还会避免很多的问题出现。
相关文档:
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
Linux 释放内存方法
先看看内存使用状况
[root@node1 ~]# free -m
total used free shared buffers cached
Mem: 8004 6557 1446 0 163 5630
-/+ buffers/cache: 763 7240
Swap: 1983 0 1983
把内存里的数据暂时写到硬盘里
[root@node1 ~]# sync
修改 /proc/sys/vm/drop_caches文件
[root@node1 ~]# echo 3 > ......
转自:http://www.neatstudio.com/show-365-1.shtml
在ubuntu下面默认是不能mount samba共享的目录的,而在公司里,我不得不连接这样的目录,在windows下面的时候,samba共享就象windows的共享目录那样的方便,但是在linux下面就不是这样的了。
首先,你要下载smbmount,运行 :
apt-get install smbfs
然后就会安 ......
#include <stdio.h>
int main()
{
char *str[] = {"welcome", "to", "fortemedia", "nanjing"};
char **p = str + 1;
str[0] = ( *p++ ) + 2;
str[1] = * ( p + 1 );
str[2] = p[1] + 3;
str[3] = p[0] + ( str[2] - str[1] );
printf ( "%s\n", str[0] );
printf ( ......
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. sopen函数
sopen函数的功能是打开一共享文件,其用法为:int sopen(char *pathname, int access, int shflag, int permiss);程序实例如下:
#include ......