![]() Chapter Contents |
![]() Previous |
![]() Next |
| chmod |
| Portability: | POSIX.1 conforming, UNIX compatible |
| SYNOPSIS | |
| DESCRIPTION | |
| RETURN VALUE | |
| EXAMPLE | |
| RELATED FUNCTIONS | |
| SEE ALSO |
| SYNOPSIS |
#include <sys/types.h> #include <sys/stat.h> int chmod(const char *pathname, mode_t mode);
| DESCRIPTION |
chmod
changes the mode bits for the directory or file specified by
pathname
.
The following symbols are defined in the
<sys/stat.h>
include file:
S_ISUID
|
sets the execution user ID. When
the specified file is processed through an
exec
function, the user id of the file owner becomes the effective user
ID of the process. |
S_ISGID
|
sets execution group ID. When the
specified file is processed through an
exec
function, the group ID that owns the file becomes the effective group ID of
the process. |
S_ISVTX
|
specifies shared text. |
S_IRUSR
|
sets file owner permission to read. |
S_IWUSR
|
sets file owner permission to write. |
S_IXUSR
|
sets file owner permission to execute. |
S_IRWXU
|
sets file owner permission to read, write, and execute. |
S_IRGRP
|
sets group permission to read. |
S_IWGRP
|
sets group permission to write. |
S_IXGRP
|
sets group permission to execute. |
S_IRWXG
|
sets group permission to read, write, and execute. |
S_IROTH
|
sets general permission to read. |
S_IWOTH
|
sets general permission to write. |
S_IXOTH
|
sets general permission to execute. |
S_IRWXO
|
sets general permission to read, write, and execute. |
| RETURN VALUE |
chmod
returns 0 if it is successful and -1 if it is not successful.
| EXAMPLE |
#include <sys/types.h>
#include <sys/stat.h>
int chexec(const char *name) {
struct stat stat_data;
mode_t newmode;
int rc;
rc = stat(name, &stat_data);
if (rc != 0) {
perror("stat failure");
return -1;
}
newmode = stat_data.st_mode;
if (newmode & S_IRUSR) newmode |= S_IXUSR;
if (newmode & S_IRGRP) newmode |= S_IXGRP;
if (newmode & S_IROTH) newmode |= S_IXOTH;
/* If the mode bits changed, make them effective. */
if (newmode != stat_data.st_mode) {
rc = chmod(name, newmode);
if (rc != 0) perror("chmod failure");
return rc;
}
return(0); /* No change was necessary. */
}
| RELATED FUNCTIONS |
| SEE ALSO |
![]() Chapter Contents |
![]() Previous |
![]() Next |
![]() Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.