clang 10.0.0git

Classes | Typedefs | Functions
File manipulation routines
libclang: C Interface to Clang
Collaboration diagram for File manipulation routines:

## Classes
struct | CXFileUniqueID
| Uniquely identifies a CXFile, that refers to the same underlying file, across an indexing session. More...

## Typedefs
typedef void * | CXFile
| A particular source file that is part of a translation unit. More...

## Functions
CINDEX_LINKAGE CXString | clang_getFileName (CXFile SFile)
| Retrieve the complete file and path name of the given file. More...
CINDEX_LINKAGE time_t | clang_getFileTime (CXFile SFile)
| Retrieve the last modification time of the given file. More...
CINDEX_LINKAGE int | clang_getFileUniqueID (CXFile file, CXFileUniqueID *outID)
| Retrieve the unique ID for the given `file`. More...
CINDEX_LINKAGE unsigned | clang_isFileMultipleIncludeGuarded (CXTranslationUnit tu, CXFile file)
| Determine whether the given header is guarded against multiple inclusions, either with the conventional #ifndef/#define/#endif macro guards or with #pragma once. More...
CINDEX_LINKAGE CXFile | clang_getFile (CXTranslationUnit tu, const char *file_name)
| Retrieve a file handle within the given translation unit. More...
CINDEX_LINKAGE const char * | clang_getFileContents (CXTranslationUnit tu, CXFile file, size_t *size)
| Retrieve the buffer associated with the given file. More...
CINDEX_LINKAGE int | clang_File_isEqual (CXFile file1, CXFile file2)
| Returns non-zero if the `file1` and `file2` point to the same file, or they are both NULL. More...
CINDEX_LINKAGE CXString | clang_File_tryGetRealPathName (CXFile file)
| Returns the real path name of `file`. More...

## Detailed Description

## Typedef Documentation

## ◆ CXFile

typedef void* CXFile

A particular source file that is part of a translation unit.

Definition at line 358 of file Index.h.

## Function Documentation

## ◆ clang_File_isEqual()

CINDEX_LINKAGE int clang_File_isEqual | ( | CXFile | file1,
|  | CXFile | file2
| ) |  |

Returns non-zero if the `file1` and `file2` point to the same file, or they are both NULL.

## ◆ clang_File_tryGetRealPathName()

CINDEX_LINKAGE CXString clang_File_tryGetRealPathName | ( | CXFile | file | ) |

Returns the real path name of `file`.

An empty string may be returned. Use `clang_getFileName()` in that case.

## ◆ clang_getFile()

CINDEX_LINKAGE CXFile clang_getFile | ( | CXTranslationUnit | tu,
|  | const char * | file_name
| ) |  |

Retrieve a file handle within the given translation unit.

Parameters

  tu | the translation unit
  file_name | the name of the file.

Returns
  the file handle for the named file in the translation unit `tu`, or a NULL file handle if the file was not a part of this translation unit.

## ◆ clang_getFileContents()

CINDEX_LINKAGE const char* clang_getFileContents | ( | CXTranslationUnit | tu,
|  | CXFile | file,
|  | size_t * | size
| ) |  |

Retrieve the buffer associated with the given file.

Parameters

  tu | the translation unit
  file | the file for which to retrieve the buffer.
  size | [out] if non-NULL, will be set to the size of the buffer.

Returns
  a pointer to the buffer in memory that holds the contents of `file`, or a NULL pointer when the file is not loaded.

## ◆ clang_getFileName()

CINDEX_LINKAGE CXString clang_getFileName | ( | CXFile | SFile | ) |

Retrieve the complete file and path name of the given file.

## ◆ clang_getFileTime()

CINDEX_LINKAGE time_t clang_getFileTime | ( | CXFile | SFile | ) |

Retrieve the last modification time of the given file.

## ◆ clang_getFileUniqueID()

CINDEX_LINKAGE int clang_getFileUniqueID | ( | CXFile | file,
|  | CXFileUniqueID * | outID
| ) |  |

Retrieve the unique ID for the given `file`.

Parameters

  file | the file to get the ID for.
  outID | stores the returned CXFileUniqueID.

Returns
  If there was a failure getting the unique ID, returns non-zero, otherwise returns 0.

## ◆ clang_isFileMultipleIncludeGuarded()

CINDEX_LINKAGE unsigned clang_isFileMultipleIncludeGuarded | ( | CXTranslationUnit | tu,
|  | CXFile | file
| ) |  |

Determine whether the given header is guarded against multiple inclusions, either with the conventional #ifndef/#define/#endif macro guards or with #pragma once.