易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux中正确处理errno

errno变量(需include errno.h)会被赋一个整数值,不同的值表示不同的含义,
可以通过查看该值推测出错的原因。但是errno是一个数字,代表的具体含义
还要到errno.h中去阅读宏定义。有下面几种方法可以方便的得到错误信息
(一)
#include <stdio.h>
void perror(const char *s)
perror()用来将上一个函数发生错误的原因输出到stderr。参数s所指的字符串会先
打印出,后面跟一个冒号和一个空格再加上错误原因字符串  后面再加上一个换行符。
此错误原因依照全局变量errno的 直来决定要
输出的字符串
*******/
#include<stdio.h>
#include<stdlib.h>
int main ()
{
 FILE *fp;
 fp=fopen("/tmp/xx","r+");
 if(fp==NULL) perror("fopen");
 return 0;
 }
(二)
#include <string.h>
char * strerror(int errnum)
函数说明 strerror()用来依参数errnum的错误码来查询错误原因
的描述字符串,然后将该字符串指针返回。
这个函数本身并不会抱错 所以没有为这个函数保留响应的错误值
返回值: 返回描述错误原因的字符串指针
****/
#include <string.h>
#include <stdio.h>
int main ()
{
 //显示错误代码0到9的错误原因描述
 int i;
 for(i=0;i<10;i++)
  fprintf(stderr,"%d:%s \n",i,strerror(i));
 return 0;
 }
 strerror函数可能会改变error。如果需要在调用strerror后再次使用
error ,应该在调用strerror钱保存error,并在再次使用之前将其恢复。
下面的代码说明如何在使用strerror的同时依然保持error的值
int error;
int fildes;
if (close(fildes)==-1){
       error = errno;
       fprintf(stderr,"Failed to close descriptor %d :%s\n",
                 fildes,strerror(errono);
       errno =  error;
       }
正确地处理errno是个棘手的问题。由于库函数的实现中可能会调用其他可以
设置errno的函数,因此,即使库函数的联机帮助页面中没有显示的说明,库
函数还是会对errno进行修改。同样,应用程序无法修改从strerror中返回的字符串�


相关文档:

libjpeg的ARM linux移植

一、下载jpeg库
二、配置编译,生成Makefile文件。
#./configure --prefix=/usr/arm/arm-linux --exec-prefix=/usr/arm/arm-linux \
--enable-shared --enable-static
注意:prefix是最后安装时库存放的文件,shared是编译成动态库,static是编译成静态库
三、修改生成的Makefile。
使用gedit Makefile
将CC ......

linux 常用命令

目录和文件操作
查看当前目录相对于根目录的位置
 
  pwd
查看当前目录内容
  ls
以长格式查看当前目录内容。对应每个文件的条目将包括连接数目、所有者、大小、最后修改时间、权限等内容
  ls -l
改变当前目录。目的目录名可用相对路径表示,也可以用绝对路径表示。
cd [目的目录名]
转移到上一级目录
c ......

Linux内核态下的文件操作

在VFS的支持下,用户态进程读写任何类型的文件系统都可以使用read和write着两个系统调用,但是在linux内核中没有这样的系统调用我们如何操作文件呢?我们知道read和write在进入内核态之后,实际执行的是sys_read和sys_write,但是查看内核源代码,发现这些操作文件的函数都没有导出(使用EXPORT_SYMBOL导出),也就是说在内核 ......

linux启动过程

linux启动流程:
系统预处理程序->GRUB  (此阶段可以理解为bootloader阶段)
->kernel   (此阶段为kernel)
->initrd->init启动->inittab->rc.sysinit->functions(PATH)->modules->rcX.d(读配置文件)
1.->字符模式->tty->bash
2.->图形模式->进入X Window-> ......

JPEG图形库:libjpeg,在LINUX下如何将jpg转换成bmp


    近来需要写一个在LINUX下的图形文件处理程序,最开始只支持BMP格式,后来要求也处理JPG。急得抓头啊,以前可没认真研究过JPG…………
    在网上找到了libjpeg,可以用这个库实现JPG图片的各种操作:
    下载:http://freeware.sgi.com/sou ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号