标题: [求助]ioctl控制光驱命令
aababy
新生入学
Rank: 1
注册用户



UID 188794
精华 0
积分 0(积分有什么用?)
帖子 12
阅读权限 10
注册 2007-4-12
状态 离线
发表于 2007-9-4 15:59  资料  个人空间  短消息  加为好友 
[求助]ioctl控制光驱命令

一个简单的控制光盘退出程序:
1[_M*lcKmfX
]K {0dRy8Mfk(f P"wG)a#include <unistd.h>%YO5rJd;q:I1U+N
//close5k,Mx?6N6t%|
#include <sys/types.h>
V:n.o8AJq4M#include <sys/stat.h>
!^
{DG'A
s}"T
#include <fcntl.h>0X{s l3|L'J
//open() iqMbQze;E
#include <stdio.h>
N{(D"I7coI3~9|w [3Y//perror()www.linuxeden.com0fK0U ?q
#include <stdlib.h>
}5L-A)f*L+t9Yp y-zLinux伊甸园论坛#include <sys/ioctl.h>
?n7rw\*]9hk)hwww.linuxeden.com)K-J%l k,G7b
#define DEVICE "/dev/cdrom"
f` Y$d;^;?j
]+UN:y5GHwww.linuxeden.comint main()
Wl2WBP;}AA{
Xv/g;B'\ v p        int fd;^ZrW H9Z*~Hc,b
        int status;8V#Kx        A's
       
i N!`!DGn A4`0x;R8p        //打开设备
b {?]T#u j        fd =open (DEVICE, O_RDONLY|O_NONBLOCK); u
N5c4b)XG3H

        if(fd<0) {f3ui,Y.K!] ]
                perror("unable to open" DEVICE);mNYi1A
                exit(1);www.linuxeden.com)p!U&OP-t'm&m3]
        }Linux伊甸园论坛3^v(APK8i u
        mc@Nj&Yo
?

        //退出光盘
N*Fi*|yjYwww.linuxeden.com        status =ioctl(fd, CDROMEJECT);
&dkRyZ#?,Bm!G        if(status != 0)//未退出
^db1J#t3p!hLinux伊甸园论坛        {6s2~y'r |
kn)u

                perror("CDROMEJECT ioctl failed");
&QA5plw                exit(1);www.linuxeden.com"JB;@+?{#wOf9y"Q
        }Linux伊甸园论坛tt.{:M5\;D8gv3l|
       
"^ r)Y*L%^        //关闭设备
:T1_.Ym&__/^Sk l        status= close(fd);
4bV_f
X'jnk)R/\g
        if(status != 0)I
WzRKp

        {www.linuxeden.com+Y/M/Z0i cN[b
                perror("unable to close" DEVICE);Linux伊甸园论坛 J]2Z!u Q.J ]
                exit(1);OOz3Dv:z
}9hn

        }
m'Uu:m)\Q:zO

       
6qy        A-kzW        return 0;`H^i2Zmx
}
T/C!p8PnSw0dwww.linuxeden.com:m        e]mIu)xo
编译说CDROMEJECT未声明:
'Oh'W~ S/@#y7hb_[root@localhost 070819]# gcc -Wall cd1.c -o cd1
"Z5H,q6G6qGtWcd1.c: 在函数 ‘main’ 中:|#A:v*]$p [*hBM%b\-y
cd1.c:27: 错误:‘CDROMEJECT’ 未声明 (在此函数内第一次使用)y EC'p[(~ IyD
#V8m
[bls

谢谢大家.

顶部
aababy
新生入学
Rank: 1
注册用户



UID 188794
精华 0
积分 0(积分有什么用?)
帖子 12
阅读权限 10
注册 2007-4-12
状态 离线
发表于 2007-9-4 16:28  资料  个人空间  短消息  加为好友 
自己找到答案了
`b {Fi(B忘了加 #include <linux/cdrom.h>

顶部
不容错过的IBM 集群技术资源汇总
 



当前时区 GMT+8, 现在时间是 2008-5-16 11:13

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.151478 second(s), 5 queries

清除 Cookies - 联系我们 - Linux伊甸园 - Archiver - WAP