open() ํจ์
๐ํค๋ ํ์ผ ๋ฐ ํจ์
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
int open(const char *pathname, int flags, [mode_t mode]);
๐์ค๋ช
: ํ์ผ์ ์ฝ๊ฑฐ๋ ์ฐ๊ธฐ ์ํด ์ด๊ฑฐ๋, ๋น ํ์ผ์ ์์ฑํ๊ณ ํ์ผ ์ง์์๋ฅผ ๋ฐํํจ.
๐์ธ์
- pathname : ํ์ผ์ ์ด๋ฆ ๋๋ ๊ฒฝ๋ก
- flags : ํ์ผ์ ์ด๊ธฐ ๋ชจ๋
- mode : ํ์ผ์ ์ ๊ทผ๊ถํ
๐๋ฐํ
- ํ์ผ์ง์์
- ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด, -1
๐์ธ์ flags
- fcntl.h ํค๋ ํ์ผ์ ์ ์๋ ๋ค์ ํ๋๊ทธ๋ค์ OR ๋นํธ์ฐ์ฐ์์ ํจ๊ป ์ฌ์ฉํ ์ ์์
O_RDONLY | ์ฝ๊ธฐ๋ง์ ํ์ฉ |
O_WRONLY | ์ฐ๊ธฐ๋ง์ ํ์ฉ |
O_RDWR | ์ฝ๊ณ ์ฐ๋ ๊ฒ์ ํ์ฉ |
O_APPEND | ํ์ผ์ ๊ธฐ์กด ๋ด์ฉ์ ์ด์ด์ ํ์ฅ |
O_CREAT | ํ์ผ์ด ์กด์ฌํ์ง ์์ ๋, ํ์ผ์ ์์ฑ |
O_TRUNC | ํ์ผ์ ์ใน๊ณ , ํฌ๊ธฐ๋ฅผ 0์ผ๋ก ๋ง๋ฆ ( O_CREAT์ ํจ๊ป ์ฌ์ฉํ ๊ฒฝ์ฐ์, ํ์ผ์ ์๋ก ์์ฑ ) |
๐์ธ์ mode
- ์ธ์ flags๊ฐ O_CREAT์ธ ๊ฒฝ์ฐ์๋ง ์ ์ฉ๋จ
close() ํจ์
๐ํค๋ ํ์ผ ๋ฐ ํจ์
#include <unistd.h>
int close(int fd);
๐์ค๋ช
- ์ด๋ ค ์๋ ํด๋น ํ์ผ์ ๋ซ๊ณ , ์ด๋ฅผ ์์คํ ์ ์๋ฆผ
- ์ด๋ ค ์๋ ๋ชจ๋ ํ์ผ์ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ๋, ์๋์ผ๋ก ๋ซํ
๐์ธ์
- fd : ํ์ผ ์ง์์
๐๋ฐํ
- ์ฑ๊ณตํ๋ฉด, 0
- ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด, -1
์ํ ์ค์ธ ํ ํ๋ก์ธ์ค๊ฐ ๋์์ ๊ฐ๋ฐฉํ ์ ์๋ ํ์ผ์ ๊ฐ์์ ์ ํ์ด ์๊ธฐ ๋๋ฌธ์, close() ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํจ
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#define PERMS 0644
int main(void)
{
int fd = 0;
char *pathname = "./newfile.txt";
fd = open(pathname, O_CREAT | O_RDWR, PERMS);
if (fd == -1)
{
perror("open() error");
exit(-1);
}
printf("fd of %s is : %d", pathname, fd);
close(fd);
return (0);
}
'Programming Language > C' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C] ํ์ผ (0) | 2020.12.05 |
---|---|
[C] Make (0) | 2020.12.04 |
[C] ์ค๋ฒํ๋ก์ฐ ์ธ๋ํ๋ก์ฐ (0) | 2020.12.03 |
[C] mainํจ์ ์ธ์ (0) | 2020.11.28 |
[C] strcmp() (0) | 2020.11.26 |