리눅스 readlink()함수에 대해서 질문요

skylandi의 이미지

책에서 readlink함수를 사용하면 심볼릭 링크 된 파일의 내용을 읽어 올수 다 고 합니다.

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define BUFSIZE 512

int main(int argc, char *argv[])
{
	char buf[BUFSIZE];

	if(argc != 2)
	{
		fprintf(stderr,"사용법 %s 심볼릭 링크파일\n",argv[0]);
		exit(1);
	}

	if(readlink(argv[1],buf,BUFSIZE) == -1)
	{
		perror("에러");
		exit(0);
	}
	printf("\n%s",buf);
	return 0;
}

이케 햇는데 내용이 안나오네요
파일 이름만 나오네요 ㅜㅜ

그리고 심볼릭 링크된 파일은 open()함수로 호출을 하면 경로를 제대로 따라 가지 못할 것이라고 책에서 나왓는데 잘 만 따라가는데 뭔가 잘못 알고 있는지
여쭤 보고 싶습니다.
좋은 하루 되시길

pynoos의 이미지

사실 symbolic link 가 내용으로 들어 있는 것은 원래 file path 이므로 맞습니다.

open 이 원래 파일을 따라갈텐데요...

그외에 stat, lstat 이런류의 함수들이 symbolic 여부를 가립니다.

skylandi의 이미지

고운 하루 되시길

내가 하고자 하는길....