找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2761|回复: 0
打印 上一主题 下一主题
收起左侧

ARM LINUX嵌入式学习的一点感悟

[复制链接]
跳转到指定楼层
楼主
ID:3721 发表于 2015-1-5 16:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在visual stdio 2010下实验的文件操作函数,linux中对文件和目录的操作都等同于文件的操作。
linux文件主要分为四种:普通文件,目录文件,连接文件,和设备文件。
linux中对所有文件的操作都是基于一个非负数的文件描述符进行的。
当打开一个文件或创建一个新文件时,内核就向进程返回一个文件描述符;当读写文件时,把文件描述符作为参数传递给相应的函数。

学习的过程是一个不断否定的过程,最初看到linux中使用fopen函数达到对设备文件的调用,就像在mini2440开发板中,应用层led闪烁程序对驱动层驱动文件调用时使用如下格式:
/*打开/dev/leds 设备文件*/
fd = open("/dev/leds0", 0);

刘翔对此百思不得其解,在windows下编程fprintf函数只是普通的格式化文件输出函数。是否在linux中每个文件都会有单独的主函数,调用fprintf时,会用对应的参数传达到主函数。答案是否定,因为我并没有在驱动文件中发现主函数的存在。linux和window下编程应该有着微妙的差别,于是刘翔开始了他的探索之路,期待linux嵌入式开发同行爱好者的一同进步,由于所有的知识点没有专业老师解答,所以都是自己看N多本书和不对实验的总结,见效之处请原谅。

// vs1.cpp : 定义控制台应用程序的入口点。
//文件实验,linux驱动调用的文件调用思想
//刘翔 2012年1月23日,祝有所收获
//实验成功fopen,fclose函数
//实验成功gets,puts函数
//实验成功fputs,fgets函数


#include "stdafx.h"

typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;

int _tmain(int argc, _TCHAR* argv[])
{        char i,buf[13];
        int j,k;
        FILE *fp;
        fp=fopen("file.cpp","w+");
        if(fp)
                        {//fputs("hollo world!",fp);//向文件输出字符串
                        j=10;
                        k=100;
                        fprintf(fp,"%d,%d",j,k);
                        fclose(fp);
                        }
        else return NULL;
        fp=fopen("file.cpp","r+");
        if(fp)
                        {//fgets(buf,12,fp);//从文件读出字符串
                        j=100;
                        k=10;
                        fscanf(fp,"%d,%d",&j,&k);
                        printf("%d,%d",j,k);
                        fclose(fp);
                        }
        else return NULL;
        //for(i=0;i<12;i++)printf("%c",buf[ i]);
        //puts(buf);
        //gets(buf);//从终端输入字符串
        //puts(buf);//从中断输出字符串
        return 0;
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表