아래는 dirfd 아래에 asecName 이라는 파일이 regular file인지 check 하는 코드
ex) dirfd = "/mnt/secure/asec/"
asecName = "1234"
이면 /mnt/secure/asec/1234 라는 regular file 이 있는지 check 해 준다.
struct stat sb;
bool ret = (fstatat(dirfd, asecName, &sb, AT_SYMLINK_NOFOLLOW) == 0)
&& S_ISREG(sb.st_mode);
http://www.tutorialspoint.com/unix_system_calls/stat.htm
The following POSIX macros are defined to check the file type using the st_mode field:
| Tag | Description |
|---|---|
| S_ISREG(m) | is it a regular file? |
| S_ISDIR(m) | directory? |
| S_ISCHR(m) | character device? |
| S_ISBLK(m) | block device? |
| S_ISFIFO(m) | FIFO (named pipe)? |
| S_ISLNK(m) | symbolic link? (Not in POSIX.1-1996.) |
| S_ISSOCK(m) | socket? (Not in POSIX.1-1996.) |
The following flags are defined for the st_mode field:
| S_IFMT | 0170000 | bitmask for the file type bitfields |
| S_IFSOCK | 0140000 | socket |
| S_IFLNK | 0120000 | symbolic link |
| S_IFREG | 0100000 | regular file |
| S_IFBLK | 0060000 | block device |
| S_IFDIR | 0040000 | directory |
| S_IFCHR | 0020000 | character device |
| S_IFIFO | 0010000 | FIFO |
| S_ISUID | 0004000 | set UID bit |
| S_ISGID | 0002000 | set-group-ID bit (see below) |
| S_ISVTX | 0001000 | sticky bit (see below) |
| S_IRWXU | 00700 | mask for file owner permissions |
| S_IRUSR | 00400 | owner has read permission |
| S_IWUSR | 00200 | owner has write permission |
| S_IXUSR | 00100 | owner has execute permission |
| S_IRWXG | 00070 | mask for group permissions |
| S_IRGRP | 00040 | group has read permission |
| S_IWGRP | 00020 | group has write permission |
| S_IXGRP | 00010 | group has execute permission |
| S_IRWXO | 00007 | mask for permissions for others (not in group) |
| S_IROTH | 00004 | others have read permission |
| S_IWOTH | 00002 | others have write permission |
| S_IXOTH | 00001 | others have execute permission |
'Programming > Linux_Platform' 카테고리의 다른 글
| signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr (0) | 2017.01.23 |
|---|---|
| makedev (0) | 2016.10.31 |
| find PID as process name and send signal using shell script (0) | 2016.10.06 |
| android adb 에서 sh : shell script file 이 실행 안될때 (0) | 2016.10.05 |
| get pid by process name - example source code (예제 코드) (0) | 2016.10.04 |