---
name: "SDL_CDOpen"
section: "3"
platform: "linux"
package: "libsdl1.2-dev"
version: "1.2.15+dfsg2-8"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL_CDOpen"
---

# SDL\_CDOpen(3)

Opens a CD-ROM drive for access.

## NAME

SDL\_CDOpen - Opens a CD-ROM drive for access.

## SYNOPSIS

**#include "SDL.h"**

**SDL\_CD \*SDL\_CDOpen**(**int drive**);

## DESCRIPTION

Opens a CD-ROM drive for access. It returns a **SDL\_CD** structure on success, or **NULL** if the drive was invalid or busy. This newly opened CD-ROM becomes the default CD used when other CD functions are passed a **NULL** CD-ROM handle.

Drives are numbered starting with 0. Drive 0 is the system default CD-ROM.

## EXAMPLES

```
SDL_CD *cdrom;
int cur_track;
int min, sec, frame;
SDL_Init(SDL_INIT_CDROM);
atexit(SDL_Quit);
/* Check for CD drives */
if(!SDL_CDNumDrives()){
  /* None found */
  fprintf(stderr, "No CDROM devices available
");
  exit(-1);
}
/* Open the default drive */
cdrom=SDL_CDOpen(0);
/* Did if open? Check if cdrom is NULL */
if(!cdrom){
  fprintf(stderr, "Couldn't open drive: %s
", SDL_GetError());
  exit(-1);
}
/* Print Volume info */
printf("Name: %s
", SDL_CDName(0));
printf("Tracks: %d
", cdrom->numtracks);
for(cur_track=0;cur_track < cdrom->numtracks; cur_track++){
  FRAMES_TO_MSF(cdrom->track[cur_track].length, &min, &sec, &frame);
  printf("	Track %d: Length %d:%d
", cur_track, min, sec);
}
SDL_CDClose(cdrom);
```

## SEE ALSO

**SDL\_CD**, **SDL\_CDtrack**, **SDL\_CDClose**
