---
name: "globus_xio_gridftp_cmd_t"
section: "3"
platform: "linux"
package: "libglobus-xio-gridftp-driver-doc"
version: "3.6-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/globus_xio_gridftp_driver"
---

# globus\_xio\_gridftp\_cmd\_t(3)

Globus XIO GRIDFTP Client Driver - Globus XIO GRIDFTP Client Driver.

Part of [globus\_xio\_gridftp\_driver(3)](/globus_xio_gridftp_driver/3.md).

## NAME

globus\_xio\_gridftp\_driver - Globus XIO GRIDFTP Client Driver

 \- Globus XIO GRIDFTP Client Driver.

## SYNOPSIS

### Typedefs

typedef enum **globus\_l\_xio\_gridftp\_mode\_e** **globus\_l\_xio\_gridftp\_mode\_t**\

### Enumerations

enum **globus\_xio\_gridftp\_error\_type\_t** { **GLOBUS\_XIO\_GRIDFTP\_ERROR\_ATTR**, **GLOBUS\_XIO\_GRIDFTP\_ERROR\_SEEK**, **GLOBUS\_XIO\_GRIDFTP\_ERROR\_OUTSTANDING\_READ**, **GLOBUS\_XIO\_GRIDFTP\_ERROR\_OUTSTANDING\_WRITE**, **GLOBUS\_XIO\_GRIDFTP\_ERROR\_PENDING\_READ**, **GLOBUS\_XIO\_GRIDFTP\_ERROR\_PENDING\_WRITE**, **GLOBUS\_XIO\_GRIDFTP\_ERROR\_OUTSTANDING\_PARTIAL\_XFER** }\
 enum **globus\_xio\_gridftp\_cmd\_t** { **GLOBUS\_XIO\_GRIDFTP\_SEEK**, **GLOBUS\_XIO\_GRIDFTP\_SET\_HANDLE**, **GLOBUS\_XIO\_GRIDFTP\_GET\_HANDLE**, **GLOBUS\_XIO\_GRIDFTP\_SET\_APPEND**, **GLOBUS\_XIO\_GRIDFTP\_GET\_APPEND**, **GLOBUS\_XIO\_GRIDFTP\_SET\_ERET**, **GLOBUS\_XIO\_GRIDFTP\_GET\_ERET**, **GLOBUS\_XIO\_GRIDFTP\_SET\_ESTO**, **GLOBUS\_XIO\_GRIDFTP\_GET\_ESTO**, **GLOBUS\_XIO\_GRIDFTP\_SET\_PARTIAL\_TRANSFER**, **GLOBUS\_XIO\_GRIDFTP\_GET\_PARTIAL\_TRANSFER**, **GLOBUS\_XIO\_GRIDFTP\_SET\_NUM\_STREAMS**, **GLOBUS\_XIO\_GRIDFTP\_GET\_NUM\_STREAMS**, **GLOBUS\_XIO\_GRIDFTP\_SET\_TCP\_BUFFER**, **GLOBUS\_XIO\_GRIDFTP\_GET\_TCP\_BUFFER**, **GLOBUS\_XIO\_GRIDFTP\_SET\_MODE**, **GLOBUS\_XIO\_GRIDFTP\_GET\_MODE**, **GLOBUS\_XIO\_GRIDFTP\_SET\_AUTH**, **GLOBUS\_XIO\_GRIDFTP\_GET\_AUTH**, **GLOBUS\_XIO\_GRIDFTP\_SET\_DCAU**, **GLOBUS\_XIO\_GRIDFTP\_GET\_DCAU**, **GLOBUS\_XIO\_GRIDFTP\_SET\_DATA\_PROTECTION**, **GLOBUS\_XIO\_GRIDFTP\_GET\_DATA\_PROTECTION**, **GLOBUS\_XIO\_GRIDFTP\_SET\_CONTROL\_PROTECTION**, **GLOBUS\_XIO\_GRIDFTP\_GET\_CONTROL\_PROTECTION** }\
 enum **globus\_l\_xio\_gridftp\_mode\_e** \

## Detailed Description

Globus XIO GRIDFTP Client Driver.

## Handles

An XIO handle with the gridftp client driver can be created with globus\_xio\_handle\_create()

The GridFTP client driver makes use of globus ftp client library. globus\_xio\_register\_open() call creates a new ftp client handle (unless one is set on the attr passed), establishes connection with the GridFTP server. The contact string must contain the scheme, host name, and the resource, optionally it might contain port and subject also.

When the XIO handle is closed, the GridFTP driver will destroy its internal resources and the ftp client handle (unless this handle was set on an attr).

## Reading/Writing

The globus\_xio\_register\_read() enforce that the waitforbytes parameter should be one. When multiple TCP streams are used between the client and the server, data might not be delivered in order. globus\_xio\_data\_descriptor\_cntl() can be used to get the offset of the data.

globus\_xio\_register\_write() does not enforce any restriction on the waitforbytes parameter.

In any case, when an error or EOF occurs before the waitforbytes request has been met, the outgoing nbytes is set to the amount of data actually read/written before the error or EOF occurred.

## Environment Variables

- •

  GLOBUS\_XIO\_GRIDFTP\_DEBUG Available if using a debug build. See globus\_debug.h for format.

## Attributes and Cntls

GridFTP driver specific attrs and cntls.

**See also**

globus\_xio\_attr\_cntl ()

globus\_xio\_handle\_cntl ()

globus\_xio\_data\_descriptor\_cntl ()

## Types

The errors reported by the GRIDFTP driver include GLOBUS\_XIO\_ERROR\_EOF, GLOBUS\_XIO\_ERROR\_CANCELED, **GLOBUS\_XIO\_GRIDFTP\_ERROR\_OUTSTANDING\_READ**, **GLOBUS\_XIO\_GRIDFTP\_ERROR\_SEEK**, **GLOBUS\_XIO\_GRIDFTP\_ERROR\_OUTSTANDING\_WRITE**, **GLOBUS\_XIO\_GRIDFTP\_ERROR\_PENDING\_READ**, **GLOBUS\_XIO\_GRIDFTP\_ERROR\_PENDING\_WRITE**, **GLOBUS\_XIO\_GRIDFTP\_ERROR\_OUTSTANDING\_PARTIAL\_XFER**

**See also**

globus\_xio\_driver\_error\_match()

globus\_error\_errno\_match()

## Typedef Documentation

### typedef enum globus\_l\_xio\_gridftp\_mode\_e globus\_l\_xio\_gridftp\_mode\_t

GRIDFTP driver specific types

## Enumeration Type Documentation

### enum globus\_l\_xio\_gridftp\_mode\_e

GRIDFTP driver specific types

### enum globus\_xio\_gridftp\_cmd\_t

doxygen varargs filter stuff GRIDFTP driver specific cntls

**Enumerator**

- *GLOBUS\_XIO\_GRIDFTP\_SEEK*

  *See usage for:* **globus\_xio\_gridftp\_handle\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_SET\_HANDLE*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_GET\_HANDLE*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_SET\_APPEND*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_GET\_APPEND*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_SET\_ERET*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_GET\_ERET*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_SET\_ESTO*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_GET\_ESTO*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_SET\_PARTIAL\_TRANSFER*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_GET\_PARTIAL\_TRANSFER*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_SET\_NUM\_STREAMS*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_GET\_NUM\_STREAMS*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_SET\_TCP\_BUFFER*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_GET\_TCP\_BUFFER*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_SET\_MODE*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_GET\_MODE*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_SET\_AUTH*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_GET\_AUTH*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_SET\_DCAU*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_GET\_DCAU*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_SET\_DATA\_PROTECTION*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_GET\_DATA\_PROTECTION*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_SET\_CONTROL\_PROTECTION*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

- *GLOBUS\_XIO\_GRIDFTP\_GET\_CONTROL\_PROTECTION*

  *See usage for:* **globus\_xio\_gridftp\_attr\_cntl**

### enum globus\_xio\_gridftp\_error\_type\_t

*GridFTP driver specific error types*

**Enumerator**

- *GLOBUS\_XIO\_GRIDFTP\_ERROR\_ATTR*

  *Indicates that an error occurred in the attribute control*

- *GLOBUS\_XIO\_GRIDFTP\_ERROR\_SEEK*

  *Indicates that a seek has been called while there is an outstanding I/O*

- *GLOBUS\_XIO\_GRIDFTP\_ERROR\_OUTSTANDING\_READ*

  *Indicates that a write has been called while there is an outstanding read*

- *GLOBUS\_XIO\_GRIDFTP\_ERROR\_OUTSTANDING\_WRITE*

  *Indicates that a read has been called while there is an outstanding write*

- *GLOBUS\_XIO\_GRIDFTP\_ERROR\_PENDING\_READ*

  *Indicates that a write has been called while there is a read pending*

- *GLOBUS\_XIO\_GRIDFTP\_ERROR\_PENDING\_WRITE*

  *Indicates that a read has been called while there is a write pending*

- *GLOBUS\_XIO\_GRIDFTP\_ERROR\_OUTSTANDING\_PARTIAL\_XFER*

  *Indicates that a second partial xfer has been initiated while the first one is still outstanding*

## Author

*Generated automatically by Doxygen for globus\_xio\_gridftp\_driver from the source code.*
