리눅스

    C / LINUX dup() dup2()

    함수 기능 기존 파일 디스크립터를 복사하기 위한 시스템 호출 함수 원형 #include Int dup(int filedes) Int dup2(int filedes, int filedes2) 리턴 값 : 성공시 새로운 파일 디스크립터, dup2는 filedes2리턴 에러시 -1 함수 파라메터 filedes 파일 디스크립터 filedes2 두번째 파일 디스크립터 함수 예제 dup1 #include #include #include #include #define BUFFER_SIZE 1024 int main(void){ char buf[BUFFER_SIZE]; char *fname = "ssu_test.txt"; int count; int fd1, fd2; if((fd1 = open(fname,O_RDONLY,..

    C / LINUX write()

    함수 기능 오픈한 파일에 데이터를 쓸 때 사용하는 시스템호출 함수 원형 #include Ssize_t write(int filedes, const void *buf, size_t nbytes) 리턴 값 : 성공 시 기록된 바이트수, 에러시 -1 리턴 함수 파라메터 filedes 파일 디스크립터 buf 버퍼 nbytes 얼만큼 쓸지 크기 buf로부터 filedes로 nbytes만큼의 데이터를 쓴다. 함수 예제 wirte1 #include #include #include #define BUFFER_SIZE 1024 int main(void){ char buf[BUFFER_SIZE]; int length; length = read(0, buf, BUFFER_SIZE); write(1,buf,length); e..

    C / LINUX setbuf(3) setvbuf(3)

    함수 기능 파일의 버퍼를 바꿔주는 함수 setvbuf setbuf와 동일하나 버퍼링의 타입과 크기지정가능 함수 원형 #include void setbuf(FILE *fp, char *buf); int setvbuf(FILE *fp, char *buf, int mode, size_t size); 리턴 값 : 성공시 0 에러시 0이아닌값 리턴 함수 파라메터 fp 파일 포인터 buf 버퍼 mode _IOFBF FULL 버퍼- 입출력이 버퍼 단위로 이루어짐 _IOLBF 라인버퍼- 개행문자를 만날때 마다 버퍼의 내용 출력 _IONBF NON버퍼 - 입출력이 버퍼를 사용하지 않게 됨. 함수 예제 setbuf1 #include #include #include #define BUFFER_SIZE 1024 int mai..

    C / LINUX ungetc(3)

    함수 기능 한번 문자를 읽은 후 그문자를 다시 스트림에 되돌려 놓는 라이브러리 함수 함수 원형 #include int ungetc(int c, FILE *fp); 리턴 값 : 성공시 c 에러시 eof 함수 파라메터 c 다시 넣을 문자 fp 파일 포인터 함수 예제 #include #include #include int main(void){ char operator; FILE *fp; int character; int number = 0; if((fp=fopen("ssu_expr.txt","r"))==NULL){ fprintf(stderr,"fopen error for ssu_expr.txt\n"); exit(1); } while(!feof(fp)){ while((character = fgetc(fp))!=..

    C / LINUX getc(3) fgetc(3) getchar(3)

    함수 기능 한번에 하나의 문자를 읽는 라이브러리 함수 getc, fgetc 주어진 포인터에서 한문자씩 읽는다 getchar stdin으로부터 문자를 하나 입력받는함수 함수 원형 #include int getc(FILE *fp); int fgetc(FILE *fp); int getchar(); 함수 파라메터 fp 파일 포인터 함수 예제 #include #include int main(void){ int character; while((character = getc(stdin))!=EOF) if(putc(character,stdout)==EOF){ fprintf(stderr,"standard output error\n"); exit(1); } if(ferror(stdin)){ fprintf(stderr,"s..

    C / LINUX fputs(3) puts(3)

    함수 기능 파일에 줄 단위 문자열을 출력하는 함수 fputs 자동 줄바꿈이 안되고 수동으로 개행 넣어줘야함 puts 문자열의 끝은 개행 문자로 대체 함수 원형 #include int puts(const char *str); int fputs(const char *str, FILE *fp); 함수 파라메터 str 가리키는 문자열 fp 파일포인터 함수 예제 #include #include #define BUFFER_SIZE 1024 int main(int argc, char *argv[]){ char buf[BUFFER_SIZE]; FILE *fp; if(argc!=2){ fprintf(stderr,"usage:%s\n",argv[0]); exit(1); } if((fp=fopen(argv[1],"w+"))..

    C / LINUX fgets(3) gets(3)

    함수 기능 줄단위 입력에 사용되는 라이브러리 fgets 는 개행문자 포함 n-1개 문자 읽음. gets 는 개행문자 만날 때까지 읽음. 개행문자는 널문자가 됨. 함수 원형 #include char *gets(char *buf); char *fgets(char *buf, int n, FILE *fp) 리턴 값 : 성공시 buf, 파일 끝이나 에러시 NULL 함수 파라메터 buf 버퍼 fp 파일포인터 함수 예제 fgets1 #include #include #include #define BUFFER_SIZE 1024 int main(void){ char buf[BUFFER_SIZE]; while(fgets(buf,BUFFER_SIZE,stdin)!=NULL) if(fputs(buf,stdout)==EOF){ ..

    C / LINUX ferror(3) feof(3) clearerr(3)

    함수 기능 FILE 스트림 객체에 설정된 에러 플래그를 설정하거나 확인하는 라이브러리 함수 ferror 입출력 에러 발생 여부 확인 feof eof가 리턴되는 이유가 에러인지 파일 끝인지를 구분 함수 원형 #include int ferror(FILE *fp); int feof(FILE *fp); void clearerr(FILE *fp); ferror 리턴 값 : 에러가 없으면 0 에러발생하면 0이 아닌값 feof 리턴 값 : 조건이 참이면 0이 아닌값, 참이 아니면 0 함수 파라메터 fp 파일 포인터 함수 예제 #include #include int main(int argc, char *argv[]){ FILE *fp; int character; if(argc!=2){ fprintf(stderr,"us..

    C / LINUX read()

    함수 기능 오픈된 파일에서 데이터를 읽을 때 사용하는 시스템호출 함수 원형 #include Ssize_t read(int filedes, void *buf, size_t nbytes) 리턴 값 : 읽은 바이트 수, 파일의 끝에 도달한 경우 0, 에러시 -1 함수 파라메터 filedes 파일 디스크립터 buf 지정된 메모리 nbytes nbytes 만큼 읽어라 fd로 부터 buf로 nbytes만큼 읽어라 함수 예제 read1 #include #include #include #include #include"ssu_employee.h" int main(int argc, char*argv[]){ struct ssu_employee record; int fd; int record_num; if(argc

    C / LINUX lseek()

    함수 기능 오픈된 파일의 오프셋 위치를 명시적으로 변경하는 시스템 호출 함수 원형 #include #include off_t lseek(int filedes, off_t offset, int whence) 리턴 값 : 성공시 파일 오프셋, 에러시 -1 함수 파라메터 file des lseek할 파일디스크립터 offset 파일 오프셋 위치 whence SEEK_SET - 파일의 오프셋 위치를 처음으로 SEEK_CUR - 현재 오프셋 부터 계산 SEEK_END - 파일의 오프셋은 파일 마지막 함수 예제 lseek 1 #include #include #include #include #include int main(void){ char *fname = "ssu_test.txt"; off_t fsize; int ..