• Places
    • Home
    • Graphs
    • Prefixes
  • Admin
    • Users
    • Settings
    • Plugins
    • Statistics
  • CPACK
    • Home
    • List packs
    • Submit pack
  • Repository
    • Load local file
    • Load from HTTP
    • Load from library
    • Remove triples
    • Clear repository
  • Query
    • YASGUI SPARQL Editor
    • Simple Form
    • SWISH Prolog shell
  • Help
    • Documentation
    • Tutorial
    • Roadmap
    • HTTP Services
  • Login

12.4.18 Miscellaneous
All Application Manual Name SummaryHelp

  • Documentation
    • Reference manual
      • Foreign Language Interface
        • The Foreign Include File
          • Miscellaneous
            • Term Comparison
            • Recorded database
            • Database
            • Getting file names
              • PL_get_file_name()
              • PL_get_file_nameW()
            • Dealing with Prolog flags from C
            • Foreign code and Well Founded Semantics
    • Packages

12.4.18.4 Getting file names

The function PL_get_file_name() provides access to Prolog filenames and its file-search mechanism described with absolute_file_name/3. Its existence is motivated to realise a uniform interface to deal with file properties, search, naming conventions, etc., from foreign code.

bool PL_get_file_name(term_t spec, char **name, int flags)
Translate a Prolog term into a file name. The name is stored in the buffer stack described with the PL_get_chars() option BUF_STACK, which is popped upon return from the foreign predicate to Prolog. Conversion from the internal UNICODE encoding is done using standard C library functions. flags is a bit-mask controlling the conversion process. On failure, PL_FILE_NOERRORS controls whether an exception is raised. Options are:
PL_FILE_ABSOLUTE
Return an absolute path to the requested file.
PL_FILE_OSPATH
Return the name using the hosting OS conventions. On MS-Windows, \ is used to separate directories rather than the canonical /.
PL_FILE_SEARCH
Invoke absolute_file_name/3. This implies rules from file_search_path/2 are used.
PL_FILE_EXIST
Demand the path to refer to an existing entity.
PL_FILE_READ
Demand read-access on the result.
PL_FILE_WRITE
Demand write-access on the result.
PL_FILE_EXECUTE
Demand execute-access on the result.
PL_FILE_NOERRORS
Do not raise any exceptions.
bool PL_get_file_nameW(term_t spec, wchar_t **name, int flags)
Same as PL_get_file_name(), but returns the filename as a wide-character string. This is intended for Windows to access the Unicode version of the Win32 API. Note that the flag PL_FILE_OSPATH must be provided to fetch a filename in OS native (e.g., C:\x\y) notation.

ClioPatria (version V3.1.1-51-ga0b30a5)