Linux之字符设备控制

Linux之字符设备控制

一、入口 main 函数的参数

虽然所有人都学习过 C 语言,但是对 C 语言中的 main 函数的用法并不是很清楚。由于后面的实验需要用到这部分知识,这里就占用一个小节,先简单介绍一下 main 函数。

1、main 函数简介

main 函数作为应用程序的入口,在头文件“#include<stdio.h> ”中。
main 函数需要传参数的时候完整的定义为

int main(int argc,char **argv)
//参数 argc,表示参数的个数
//参数**argv,存储输入字符的数组
//argv[0]表示程序名称
//argv[1]——argv[n]输入的参数

不传参数的时候定义为

int main(void)

函数 main 的返回值为类型为 int,用于判断程序执行成功还是失败

2、main 函数例程

编写简单的 argvc.c 文件测试 main 函数。
代码如下所示,将输入的参数第一个和第二个转换成 int 类型,赋值给 i 和 j,最后输出打印。其中 argv[0]为程序名称,这里就是后面要编译的目标文件“argvc”。

#include<stdio.h> 
#include<string.h>

//argument count变元计数
//argument value变元值
int main(int argc,char *argv[])
{
   
	int i,j;
	i = atoi(argv[1]);
	j = atoi(argv[2]);
	
	printf("the Program name is %s\n",argv[0]);
	
	printf("The command line has %d argument:\n",argc-1);
	
	printf("%d,%d\n",i,j);
	
	return 0;
}

编译成可执行的文件argvc,拷贝到 U 盘,启动最小Linux系统,插入 U 盘,加载 U 盘,运行程序如下

在这里插入图片描述
如上图所示,程序成功运行,打印:
the Program name is ./mnt/udisk/argvc。因为运行的程序是“./mnt/udisk/argvc”,这是第一个参数
The command line has 2 argument:输入的个数有两个。
10,11。输入的参数是 10 和 11,对应 argv[1]和 argv[2]。

二、字符类 led 灯

1、led灯简介

在前面介绍 open 函数的时候,已经提到过如何打开字符类设备,获得句柄的方法和一般文件都是一样。
由于涉及到硬件知识,这里简单介绍一下硬件原理,如下图所示,led 小灯的硬件原理很简单。
在这里插入图片描述
如上图所示,给 KP_COL0 和 VDD50_EN 网络高电平,三极管 L9014 就会导通,电源 VSYS就会将电压加到电阻 R 和 led 小灯上,小灯就会亮。
给 KP_COL0 和 VDD50_EN 网络低电平,三极管 L9014 就会截止,形成断路,小灯灭。
在前面介绍过,如果要给文件进行写操作,那么使用的是 write 函数。对于 led 小

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值