manpagez: man pages & more
man sysdir(3)
Home | html | info | man

sysdir(3)                BSD Library Functions Manual                sysdir(3)


NAME

     sysdir_start_search_path_enumeration,
     sysdir_get_next_search_path_enumeration -- Enumeration of the filesystem
     paths for the various standard system directories where apps, resources,
     etc. get installed.


SYNOPSIS

     #include <sysdir.h>

     sysdir_search_path_enumeration_state
     sysdir_start_search_path_enumeration(sysdir_search_path_directory_t dir,
         sysdir_search_path_domain_mask_t domainMask);

     sysdir_search_path_enumeration_state
     sysdir_get_next_search_path_enumeration(sysdir_search_path_enumeration_state state,
         char *path);


DESCRIPTION

     The sysdir API returns the various standard system directories where
     apps, resources, etc. get installed. Because queries can return multiple
     directories, the API is in the form of an enumeration. The directories
     are returned in search path order: that is, the first place to look is
     returned first.

     sysdir_start_search_path_enumeration() begins enumeration of the filesys-
     tem paths for the specified directory and domain(s).  The return value
     should be passed to one or more calls to
     sysdir_get_next_search_path_enumeration() to obtain the filesystem path
     and continue the enumeration.

     sysdir_get_next_search_path_enumeration() returns a filesystem path for
     the directory and domain(s) specified by the state value returned by
     sysdir_start_search_path_enumeration().  Subsequent calls to
     sysdir_get_next_search_path_enumeration() should pass the state value
     returned by the previous call to continue the enumeration in each domain.
     A state value of zero will be returned when all domains have been enumer-
     ated.

     The path buffer that is passed to
     sysdir_get_next_search_path_enumeration() will be filled with a null-ter-
     minated string, possibly containing as many as PATH_MAX-1 characters.

     Some directory paths returned may not exist on the filesystem.

     Some combinations of dir and domainMask may return no directory paths.

     Directory paths returned in the user domain will contain "~" to refer to
     the user's directory.

     The environment variable NEXT_ROOT is prepended as necessary to the
     returned directory paths.  NEXT_ROOT is ignored if the process is setuid
     or is code signed with entitlements.


DIRECTORY CONSTANTS

     The following sysdir_search_path_directory constants are defined:

     SYSDIR_DIRECTORY_APPLICATION     Supported applications (Applications)

     SYSDIR_DIRECTORY_DEMO_APPLICATION
                                      Unsupported applications and demonstra-
                                      tion versions (Applications/Demos)

     SYSDIR_DIRECTORY_DEVELOPER_APPLICATION
                                      Developer applications (Developer/Appli-
                                      cations) Deprecated: As of Xcode 4.3,
                                      there is no longer a Developer Applica-
                                      tion directory directory; instead,
                                      Xcode.app is a self-contained applica-
                                      tion that gets installed in the user's
                                      Applications directory, by default,
                                      although it can be put anywhere.

     SYSDIR_DIRECTORY_ADMIN_APPLICATION
                                      System and network administration appli-
                                      cations (Applications/Utilities)

     SYSDIR_DIRECTORY_LIBRARY         Various user-visible documentation, sup-
                                      port, and configuration files, resources
                                      (Library)

     SYSDIR_DIRECTORY_DEVELOPER       Developer resources (Developer) Depre-
                                      cated: As of Xcode 4.3, there is no
                                      longer a Developer directory; instead,
                                      Xcode.app is a self-contained applica-
                                      tion that gets installed in the user's
                                      Applications directory, by default,
                                      although it can be put anywhere.

     SYSDIR_DIRECTORY_USER            User home directories (Users)

     SYSDIR_DIRECTORY_DOCUMENTATION   Location of documentation (Library/Docu-
                                      mentation)

     SYSDIR_DIRECTORY_DOCUMENT        Location of documents (Documents)

     SYSDIR_DIRECTORY_CORESERVICE     Location of core services (Library/Core-
                                      Services)

     SYSDIR_DIRECTORY_AUTOSAVED_INFORMATION
                                      Location of user's autosaved documents
                                      (Library/Autosave Information)

     SYSDIR_DIRECTORY_DESKTOP         Location of user's desktop directory
                                      (Desktop)

     SYSDIR_DIRECTORY_CACHES          Location of discardable cache files
                                      (Library/Caches)

     SYSDIR_DIRECTORY_APPLICATION_SUPPORT
                                      Location of application support files
                                      (Library/Application Support)

     SYSDIR_DIRECTORY_DOWNLOADS       Location of user's downloads directory
                                      (Downloads)

     SYSDIR_DIRECTORY_INPUT_METHODS   Location of input methods (Library/Input
                                      Methods)

     SYSDIR_DIRECTORY_MOVIES          Location of user's Movies directory
                                      (Movies)

     SYSDIR_DIRECTORY_MUSIC           Location of user's Music directory
                                      (Music)

     SYSDIR_DIRECTORY_PICTURES        Location of user's Pictures directory
                                      (Pictures)

     SYSDIR_DIRECTORY_PRINTER_DESCRIPTION
                                      Location of system's PPDs directory
                                      (Library/Printers/PPDs)

     SYSDIR_DIRECTORY_SHARED_PUBLIC   Location of user's Public sharing direc-
                                      tory (Public)

     SYSDIR_DIRECTORY_PREFERENCE_PANES
                                      Location of the PreferencePanes direc-
                                      tory for use with System Preferences
                                      (Library/PreferencePanes)

     SYSDIR_DIRECTORY_ALL_APPLICATIONS
                                      All directories where applications can
                                      occur (/Applications, ~/Applications,
                                      /Applications/Utilities, etc)

     SYSDIR_DIRECTORY_ALL_LIBRARIES   All directories where resources can
                                      occur (/Library, ~/Library, /Net-
                                      work/Library, etc)


DOMAIN CONSTANTS

     The following sysdir_search_path_domain_mask constants are defined:

     SYSDIR_DOMAIN_MASK_USER          The user's home directory -- the place
                                      to install user's personal items (~)

     SYSDIR_DOMAIN_MASK_LOCAL         Local to the current machine -- the
                                      place to install items available to
                                      everyone on this machine

     SYSDIR_DOMAIN_MASK_NETWORK       Publically available location in the
                                      local area network -- the place to
                                      install items available on the network

     SYSDIR_DOMAIN_MASK_SYSTEM        Provided by Apple -- can't be modified

     SYSDIR_DOMAIN_MASK_ALL           All domains -- all of the above and
                                      future domains


ENVIRONMENT

     The following environment variable affects the execution of
     sysdir_get_next_search_path_enumeration:

     NEXT_ROOT  If the NEXT_ROOT environment variable is set and the current
                process is not tainted by uid or gid changes, NEXT_ROOT is
                prepended as necessary to the returned directory paths.
                NEXT_ROOT is ignored if the process is setuid or is code
                signed with entitlements.


EXAMPLES

     #include <limits.h>
     #include <sysdir.h>

     char path[PATH_MAX];
     sysdir_search_path_enumeration_state state = sysdir_start_search_path_enumeration(dir, domainMask);
     while ( (state = sysdir_get_next_search_path_enumeration(state, path)) != 0 ) {
         // Handle directory path
     }


HISTORY

     The sysdir API first appeared in OS X 10.12, iOS 10, watchOS 3 and tvOS
     10 replacing the deprecated NSSystemDirectories(3) API.

Darwin                         December 22, 2015                        Darwin

Mac OS X 10.12.3 - Generated Wed Feb 8 18:23:11 CST 2017
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.