리눅스 파일 읽기 시스템콜 관련 질문입니다.
#include stdio.h
#include sys/types.h
#include sys/stat.h
#include fcntl.h
#include unistd.h
#include errno.h
int main()
{
extern int erron;
int size = sizeof (unsigned int);
unsigned int num;
int fd;
int nr;
fd = open("/home/사용자/파일이름", O_RDWR, 0644);
if (fd == -1)
{
printf("error1");
}
while(size != 0 && (nr = read(fd, &num, size)) != 0)
{
if (fd == -1)
{
if(errno == EINTR)
{
continue;
}
printf("error2");
break;
}
else
{
printf("a %d\n", nr);
printf("b %d\n", num);
printf("c %s\n", &num);
}
}
}
파일 내용:aaaaaaaaaaaaaaaaaaaaaaaaaaaaa //a*29
이렇게 코드를 만들었는데
실행을 하면 결과가
a 4
b 1633771873
c aaaa X7반복
a 2
b 1633749601
c a
aa
이렇게 나오는데
이때 마지막에 "aa"는 왜나오나요?
처음이라 죄송합니다
이거 탭버튼은 어떻게 사용하나요???
kldp에서 소스 코드는 code 태그 쓰면 됩니다.
kldp에서 소스 코드는 code 태그 쓰면 됩니다.
탭 쓰는 건 일반적인 편집기로 작성한 내용 중 범위 선택해서 복사, kldp에서 code 태그 안에 붙여넣기.
하면 됩니다.
세벌 https://sebuls.blogspot.kr/
C 프로그래밍은 gdb 사용할줄 모르면 못해요
C 프로그래밍은 gdb 사용할줄 모르면 못해요
마지막에 aa 값이 나오는 위치에서 &num 위치의 값을 출력해보면 알수있어요
%s 는 null 문자까지 출력하니까 97 'a' 10 '\n' 97 'a' 97 'a' 4 '\004' 까지 출력되죠
gdb-dashboard 설치해서 사용하세요
gdb-dashboard 설치해서 사용하세요
https://github.com/cyrus-and/gdb-dashboard
기본적으로 설치되는 gdb 는 인터페이스가 별로에요
댓글 달기