-
uid ๊ฒ์
- uid : ๋ง๋ ์ฌ๋์ id
-
euid : ์ง๊ธ ์คํ์ค์ธ ์ฌ๋์ id
#include<sys/types.h> #include<unistd.h> uid_t getuid(void); uid_t geteuid(void);
-
guid ๊ฒ์
-
gid : ๋ง๋ ์ฌ๋์ ๊ทธ๋ฃน id
-
egid : ์ง๊ธ ์คํ์ค์ธ ์ฌ๋์ ๊ทธ๋ฃน id
#include<sys/types.h> #include<unistd.h> gid_t getgid(void); gid_t getegid(void);
-
Directory tree
-
sub directory : directory ๋ฐ๋ก ๋ฐ์ directory
-
descendant : directory ๋ฐ์ ๋ชจ๋ sub directory
-
์ฌ์ฉ๋ฒ
#include <ftw.h> int ftw(const char *path, int(*func)(), int depth);
-
path์์ ์์ํด์ recursiveํ๊ฒ subdirectory์ file๋ค์ func() ํจ์๋ฅผ ์ ์ฉ
-
์์์ . cwd๋ถํฐ ํ์ํ๊ฒ ๋ค ํ๋ฉด "." ์ฃผ๋ฉด ๋๋ค. ์๋๋ฉด dir ์ด๋ฆ
-
func()๋ ๋ฌด์กฐ๊ฑด int๋ฅผ ๋ฐํํ๋ ํจ์ ํฌ์ธํฐ. ํจ์์์์ฃผ์๋ ํจ์ ์ด๋ฆ์ด๋ค(๋ฐฐ์ด์์์ฃผ์๋ ๋ฐฐ์ด ์ด๋ฆ์ธ ๊ฒ ์ฒ๋ผ) ํจ์๋ฅผ ๋ง๋ค์ด์ ์ธ์๋ก ๋๊ฒจ์ฃผ๋ฉด๋๋ค
-
depth : ftw์ ์ํด ์ฌ์ฉ ๊ฐ๋ฅํ file descriptor ์
ํ์ผ ํ ์ด๋ธ ๋ฐฐ์ด์ ๋ฐฐ์ด์ด๋๊น ๋ฌด์ ํ์ผ๋ก ํ์ผ์ ์ฌ๋๊ฒ ๋ถ๊ฐ๋ฅํจ. ๊ทธ๋์ depth๋งํผ openํ๊ณ closeํ๋ฉด์ ์๋๋ก ๋ด๋ ค๊ฐ
-
-
int func() ์์ฑํ๋ ๋ฐฉ๋ฒ
int func (const char *name, const struct stat *sptr,int type) { }
-
ํญ์ ๋ง๋ฌด๋ฆฌ๋ return 0; (OS๊ฐ 0์ ๋ฐํ๋ฐ์์ผ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ์ธ์งํ๊ธฐ ๋๋ฌธ์ ์ฃผ์ํ ๊ฒ)
-
ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ฉด ftw(".", list, 1) ์์คํ ์ฝ์ ํธ์ถํ๋๊น ๊ทธ ์๊ฐ OS์์ control์ ๊ฐ์ ธ๊ฐ
- ftw ์์คํ ํธ์ถ ๋ด๋ถ์๋ while๋ฌธ์ผ๋ก listํจ์(ํ๋ก๊ทธ๋จ์ ์์ฒด์ ์ผ๋ก ๊ตฌํํ ํจ์)๋ฅผ ๊ณ์ํด์ ์คํ์ํจ๋ค
-
๋งค๋ฒ ํธ์ถ ์, ํ์ผ/dir์ ๋ํ ์ ๋ณด๋ฅผ ์ค๋ค
- char * name : ํ์ผ/dir ์ด๋ฆ
- const struct stat * status : ํ์ผ/dir์ ๋ํ stat ์ ๋ณด๋ฅผ OS๊ฐ ๊ฐ์ง๊ณ ์์ผ๋ฉด ํฌ์ธํฐ ์ฃผ์๋ก ๊ฐ์ ธ์ฌ ์ ์์
- int type : ํ์ผ์ธ์ง, ์๋์ง ์๋ ค์ค
- type = FTW_F: object๊ฐ ํ์ผ์
- type = FTW_D: object๊ฐ directory์
- type = FTW_DNR: object๋ ์ฝ์ด์ฌ ์ ์๋ directory. permission 4๊ฐ ์๋ ๊ฒฝ์ฐ
- type = FTW_NS: ex) stat๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ป์ด์ฌ ์ ์๋ symlink ํ์ . symlink์ธ๋ฐ ๊ฐ๋ฆฌํค๋ ํ์ผ ์ด๋ฆ์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ
-