track.c

来自「CD驱动器实现的源代码」· C语言 代码 · 共 50 行

C
50
字号
/* * 代码清单2: track.c */#include <unistd.h>#include <stdlib.h>#include <fcntl.h>#include <sys/ioctl.h>#include <linux/cdrom.h>/* CD驱动器对应的设备文件 */#define DEVICE "/dev/cdrom"int main() {  int fd;  int status;  int number;  int first_track, last_track;  struct cdrom_tochdr header;  /* 打开设备 */  fd = open(DEVICE, O_RDONLY);  if (fd < 0) {    perror("unable to open " DEVICE);    exit(1);  }  /* 读取CD头部信息 */  status = ioctl(fd, CDROMREADTOCHDR, &header);  if (status != 0) {    perror("CDROMREADTOCHDR ioctl failed");    exit(1);  }  /* 计算音轨数目 */  first_track = header.cdth_trk0;  last_track = header.cdth_trk1;  number = last_track;  printf("This CD has %d tracks.\n", number);  /* 关闭设备 */  status = close(fd);  if (status != 0) {    perror("unable to close " DEVICE);    exit(1);  }  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?