Welcome 微信登录

首页 / 操作系统 / Linux

如何用C语言获取文件的大小

如何用C语言获取文件的大小

今天看项目的代码过程中发现在linux下获取一个指定文件大小(字节为单位)的代码。查了一下发现是使用系统调用stat来实现,而这引起了我的兴趣,我发现在window下貌似没有提供这样的系统调用(不包括MFC),那么如何使用C语言或C++语言来写一个通用的函数来获取指定文件大小的函数呢?查了一下发现同C语言的文件操作函数便可以很容易的实现这样的功能。在自己实现的函数中使用到的函数就只有fseek和ftell。它们的说明如下:fseek语法:#include ...
Linux fork函数创建一个新进程

Linux fork函数创建一个新进程

在Linux中创建一个新进程的唯一方法是使用fork函数,fork()执行一次但有两个返回值。在父进程中,返回值是子进程的进程号;在子进程中,返回值为0。因此可通过返回值来判断当前进程是父进程还是子进程。使用fork函数得到的子进程是父进程的一个复制品,它从父进程处复制了整个进程的地址空间,包括进程上下文,进程堆栈,内存信息,打开的文件描述符,信号控制设定,进程优先级,进程组号,当前工作目录,根目录,资源限制,控制终端等。而子进程所独有的只是它的进程号,资...
UT6410 Linux 2.6.24 YAFFS2做根文件系统方法

UT6410 Linux 2.6.24 YAFFS2做根文件系统方法

ut6410开发板自带的是cramfs文件系统作为根文件系统使用的,该文件系统只读,为了调试方便,将其改为yaffs2,具体方法为:1、yaffs2文件系统内核支持,参见《Linux下YAFFS2 移植步骤》:http://www.linuxidc.com/Linux/2011-02/32305.htm完成之后,make bzImage,然后在板子上启动新编译的内核,cat /proc/filesystems 。。。。。。。。。vfatnodev nfsn...
S3C6410+Linux系统崩溃的问题咨询

S3C6410+Linux系统崩溃的问题咨询

我用SAMSUNG的S3C6410(S3C6410XH 6F)设计开发了一款核心板,跑的系统是Linux。现在主要遇到两个问题:1、我用两块核心板进行测试,主要的问题是,Linux系统有时启动到一半会挂掉,有时可以正常启动。两块核心板中一块经常起不来,一块偶尔起不来。下面是截取的系统在启动时没起来的最后的的日志。nitcall 0xc002042c ran for 0 msecs: tcp_congestion_default+0x0/0x1c()Call...
在Android中加入充电指示

在Android中加入充电指示

基于Andriod系统的平台在没有硬件充电指示的情况下只有进入andriod系统才能进行充电指示,而我们有时候仅仅需要充电而不需要进入系统,本文介绍了实现这种功能的方法。具体过程如下:当内核启动后调用充电指示控制程序。充电指示程序发现如果外部供电就开始显示充电的画面,同时将设备的电源控制锁定为关闭状态(这样当拔掉电源时候系统自动关闭),如果在充电指示过程中又按了开机键,就重新开启电源按键。这个过程在单片机等简单系统上不值得一提,因为每个人都会想的比我好,这...
利用BLCR加快Android的启动过程

利用BLCR加快Android的启动过程

摘要:介绍了利用blcr对Android启动速度进行优化的原理、实施步骤和注意点,在虚拟机上验证获得缩短10秒以上启动时间。关键词:blcr android 启动速度 zygote 类加载引言 随着google的android操作系统在手机、平板电脑等领域大量使用,android的启动速度慢也成为许多使用者抱怨的缺点。相比手机这类平时较少开关机的设备,平板电脑在实际使用中开关的频率相对频繁,开机速度是影响客户感受的一个重要因素。Android启动过程分为l...
Android上拔出sd卡导致flash上媒体也消失问题解决方法

Android上拔出sd卡导致flash上媒体也消失问题解决方法

机器内部有一部分flash供客户使用,同时机器支持sd卡。当插入sd卡时候flash内部和sd卡内部的多媒体都可以被播放器识别,一旦拔掉sd卡,则flash内的媒体对播放器也不见了。解决方法:修改frameworks/base/services/java/com/Android/server/MountService.java文件的函数:notifyMediaBadRemoval如下,红色为添加。mContext.sendBroadcast(intent)...
Linux Shell脚本中如何自由操作字符串

Linux Shell脚本中如何自由操作字符串

Bash所支持的字符串操作的数量多的令人惊讶. 但是不幸的是, 这些工具缺乏统一的标准. 一些是参数替换的子集, 而另外一些则受到UNIX expr命令的影响. 这就导致了命令语法的不一致, 还会引起冗余的功能, 但是这些并没有引起混乱.字符串长度${#string} expr length $string expr "$string" : ".*" 1 stringZ=abcABC123ABCabc 2 3 echo ${#stringZ} # 15 ...
Android NDK的C/C++代码中利用JNI回调实现字符编码转换

Android NDK的C/C++代码中利用JNI回调实现字符编码转换

在NDK下做网络传输时,遇到一个编码转换的问题,就是对方传过来的文件名是中文GBK编码,需要转成UTF8来处理。平常在C/C++环境下编程时,系统都会提供字符编码转换的API。如Windows下有MultiByteToWideChar之类的函数,Linux下有iconv库,纯C下用wcstombs、mbstowcs也可以做。然而我在我机上的Android NDK目录下,并没有找到iconv库,直接写iconv函数无法编译;而mbstowcs需要的本地库似乎...
Linux中C程序因栈空间不足而出现的运行时段错误

Linux中C程序因栈空间不足而出现的运行时段错误

今天在公司的项目中的一个函数中,进行运行的时候,出现了一个怪异的段错误现象。开始以为是哪个字串在进行sprintf时类型不一致或是某个指针出现了问题,结果找了半天也没有发现有这方面的问题,又使用gdb进行跟踪,结果跟踪到段错误的地方,使用bt命令列出当前函数栈列表,发现出错的地儿是使用的另一个由别人开发的库文件中的一个函数,没法,没得源代码,在此种情况下,只有二种解决方法:(1)寻找源代码,查看源代码;(2)一点一点的注释掉接近段错误出现的函数周围的代码;...
<< 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 >>