Programming Language/C

[C] open(), close()

lingk 2020. 12. 5. 14:20

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