How to change/show permissions in C

speed17 picture speed17 · Mar 29, 2010 · Viewed 34.2k times · Source

I am new to C programming and I'd like to implement chmod command on files of a dir and subdir. How can I change/show permissions with a C code? Could someone help with a example? I would appreciate if anyone can provide me a code.

Answer

Cascabel picture Cascabel · Mar 29, 2010

There's a chmod function. From man 3p chmod:

SYNOPSIS
   #include <sys/stat.h>

   int chmod(const char *path, mode_t mode);

...

If you want to read the permissions, you'd use stat. From man 3p stat:

SYNOPSIS
   #include <sys/stat.h>

   int stat(const char *restrict path, struct stat *restrict buf);

...

If you want to do it recursively like you mentioned, you'll have to do the looping over results of readdir yourself.