---
name: "ggiClose"
section: "3"
platform: "linux"
package: "libggi2-dev"
version: "1:2.2.2-5"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/ggiOpen"
---

# ggiClose(3)

Open and close a visual

Part of [ggiOpen(3)](/ggiOpen/3.md).

## NAME

**ggiOpen**, **ggiClose** - Open and close a visual

## SYNOPSIS

```
#include <ggi/ggi.h>
ggi_visual_t ggiOpen(const char *display, ...);
int ggiClose(ggi_visual_t vis);
```

## DESCRIPTION

**ggiOpen** opens a visual.  The visual is specified as a display string, followed by **NULL**.  If only **NULL** is specified, the default display target is opened, which means first examining **GGI\_DISPLAY**, then invoking `display-auto(7)`.  The other arguments are for internal purposes only, such as *argptr*, used to pass driver-specific, non-textual information to the driver.

**ggiClose** releases and destroys an open visual.  This will close X windows, return consoles to text-mode, etc.

## RETURN VALUE

**ggiOpen** returns the opened visual or **NULL** for error.  The **ggi\_visual\_t** is opaque to the programmer and should only be used through GGI functions.

**ggiClose** returns **0** for OK, otherwise a `ggi-error(3)` code.

## EXAMPLES

Open and closing default visual:

```
ggi_visual_t vis = ggiOpen(NULL);
if(vis==NULL) {
      ggiPanic("Couldn't open default visual!\n");
}
/* do stuff */
ggiClose(vis);
```

Open and closing a memory visual:

```
ggi_visual_t memvis = ggiOpen("display-memory", NULL);
if(memvis==NULL) {
      return -1;
}
/* do stuff */
ggiClose(memvis);
```

## SEE ALSO

`display-auto(7)`, `ggiInit(3)`, `libggi(7)`
