|
今天写一个测试程序,代码如下(写的比较乱,包涵)
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char **argv)
{
int fd;
int ret,cmd;
fd=open("/dev/butt_led_dev",0);
if(fd < 0)
printf("open fail \n");
sscanf(argv[1],"%d",&cmd);
sscanf(argv[2], "%d", &ret);
if(cmd==0)
{
ioctl(fd,0,ret-1);
printf("ret=%d\n",(ret-1));
}
else
{
ioctl(fd,1,ret-1);
printf("ret=%d\n",(ret-1));
}
close(fd);
return 0;
}
我前几天看到sscanf的用法,
sscanf(argv[2], "%d", &ret);
是把argv[2]转换成整形格式并存入ret。这和强制转换有什么不同,我用ret=(int)ret却到不同的结果,请指点 |
|