How do I get in python the maximum filesystem path length in unix?
Question: In the code I maintain I run across:

    
    
    from ctypes.wintypes import MAX_PATH
    

I would like to change it to something like:

    
    
    try:
        from ctypes.wintypes import MAX_PATH
    except ValueError: # raises on linux
        MAX_PATH = 4096 # see comments
    

but I can't find any way to get the value of max filesystem path from python
(`os, os.path, sys...`) - is there a standard way or do I need an external lib
?

Or there is no analogous as MAX_PATH in linux, at least not a standard among
distributions ?

* * *

[**Answer**](http://stackoverflow.com/a/32812228/281545)

    
    
    try:
        MAX_PATH = int(subprocess.check_output(['getconf', 'PATH_MAX', '/']))
    except (ValueError, subprocess.CalledProcessError, OSError):
        deprint('calling getconf failed - error:', traceback=True)
        MAX_PATH = 4096
    


Answer: You can read this values from files:

    
    
    * PATH_MAX (defined in limits.h)
    * FILENAME_MAX (defined in stdio.h)
    

Or use subprocess.check_output() with
[getconf](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/getconf.html)
function:

    
    
    $ getconf NAME_MAX /
    $ getconf PATH_MAX /
    

as in the following example:

    
    
    name_max = subprocess.check_output("getconf NAME_MAX /", shell=True)
    path_max = subprocess.check_output("getconf PATH_MAX /", shell=True)
    

to get values and
[fpath](http://pubs.opengroup.org/onlinepubs/009695399/functions/fpathconf.html)
to set different values for files.

