본문 바로가기

컴퓨터

GCC Error (Warning) Message List GCC Error (Warning) Message List Copyright © 1999 Seong-Kook Cin Seong-Kook Cin Jang-Chon Dong 21-2 Sun-Chon City 540-190 South KOREA Before reading this 이 문서는 GCC Version 2.7.2를 기준으로 하여 이 컴파일러가 출력하는 에러 [error]와 경고 [warning] 메시지를 한국어로 번역하고, 그 메시지를 발생할 수 있는 간단한 예제를 보이며, 간단한 해결책을 제시합니다. 이 문서는 C 배우미들이 낯선 컴파일러 메시지를 만났을 때 당황하지 않고 쉽게 문제를 해결할 수 있기를 바라는 뜻에서 만들어진 것입니다. 이 문서는 유용하게 쓰여지기를 바라면서 만들어졌지만 저자는 이 .. 더보기
strtok_r 과 strtok 의 차이점? #include #include int main(int argc, char *argv[]) { const char delim[] = "\t\n ="; char *buf, *value_p, *lasts; char str[]="thsis is test"; buf = str; //value_p = strtok_r(buf, delim, &lasts); 1번 value_p = strtok(buf, delim); 2번 if( !value_p ){ fprintf(stderr, "wrong string \n"); return(-1); } fprintf(stdout, "string token is %s\n", value_p); return(0); } 1번으로 컴파일하면 "strtok_test.c", line 13: wa.. 더보기
[C언어] 문자열 함수 정리 #include char* strcpy(char* s1, const char* s2);s2가 가르키는 문자열을 s1이 가르키는 문자열로 널문자까지 포함하여 복사하고 리턴값은 s1의 시작 주소를 반환한다.char* strncpy(char* s1, const char*s2, size_t n);s2가 가르키는 문자열의 내용을 n byte만큼 s1이 가르키는 문자열로 복사하고 리턴 값은 s1의 시작 주소를 반환한다.char* strcat(char* s1, const char* s2);s2가 가르키는 문자열을 s1이 가르키는 문자열의 끝에 이어서 복사한다. 리턴값은 s1의 시작 주소를 반환한다.char* strncat(char* s1, const char* s2, size_t n);s2가 가르키는 문자열을 .. 더보기
유닉스 중에 #define FILE_NAME 0644 의미가 뭐죠? #define FILE_NAME 0644 유닉스 파일 접근권한 제어를 위해 프로그램 코딩시에 FILE_NAME 이라는 메크로 변수로 대체하여 쓰겠다는 의미입니다. 나중에 프로그램 수정시 편리성을 확보하기 위해서 말입니다. 0644 -rw-r--r-- 읽기,쓰기 - 읽기 -읽기- fd=open("temp.txt",O_RDWR | O_CREAT ,0644); ---> fd=open("result.txt",O_RDWR | O_CREAT , FILE_NAME ); 더보기
파일 입.출력 제 10 장 화일 입출력 대부분의 PC 시스템은 디스크를 기반으로 하는 화일 관리를 하고 있다. 그러므로 화일 입출력은 디스크 입출력이라 말해도 큰 무리가 없다. C 언어에서의 화일 입출력은 더 포괄적인 의미를 가진다. 화일 입출력시 화일(입출력할 대상)은 디스크, 테이프 장치, 프린터 등이 될 수도 있다. 화일을 사용하기 위해서는 어느 화일을 사용할지 지정해야 하는데 이것을 '연다(open)'고 표현한다. 화일을 입출력을 끝낼 때는 사용이 끝났음을 알려주어야 하는데 이것을 '닫는다(close)'라고 말한다. 화일을 닫는 방법은 터보 C에서는 다음 두 방식으로 지원한다. 도스 시스템 호출 기능에 의존하는 저수준 화일 입출력과 C 언어의 고수준 입출력(stream I/O)을 통한 화일 입출력을 지원한다. .. 더보기
파일 디스크립터를 출력으로 지정( creat, dup2) /* 파일 디스크립터를 출력으로 지정 creat, dup2 */ #include int main(void) { int fd; fd = creat("dup_result", 0644); //파일 디스크립트를 복사 하여 새로운 파일 디스크립터를 생성\ //생성된 dup_result를 dup2로 하여금 출력파일 디스크립터로 생성 dup2(fd, STDOUT_FILENO); close(fd); //출력문을 쓰면 파일디스크립터로 쓰는 파일에 출력문이 쓰인다. printf("hello world\n"); return 0; } [출처] 파일 디스크립터를 출력으로 지정( creat, dup2)|작성자 지상렬 더보기
hole있는 파일 생성(creat, write, lseek) /* hole있는 파일 생성 creat, write, lseek */ #include #include int main(void) { int fd; //파일만들다 fd = creat("holefile", 0644); //만든파일에 문자 쓴다. write(fd, "hello", 5); //현재 위치에서 10번째 뒤로 이동 lseek(fd, 10, SEEK_CUR); //문자쓴다. write(fd, "world", 5); //처음 시작점 부터 8192만큼 뒤로 이동 lseek(fd, 8192, SEEK_SET); //문자 쓴다. write(fd, "bye", 3); close(fd); return 0; } [출처] hole있는 파일 생성(creat, write, lseek)|작성자 지상렬 더보기
운영체제(유닉스)에서 open()과 read()함수의 소스코드 다음은 read 함수의 한 예로서 size file(1) ... fine(n)과 같이 사용하여 각 파일들의 크기를 계산하여 출력하는 프로그램이다. #include #include main(int argc, char *argv[]) { int fd; long int size; int n; char buf[BUFSIZ]; if (argc == 1) { fprintf(stderr,"USAGE: %s file(1) file(2) ... file(n)\n",*argv); return (0); } while (--argc > 0) { if ((fd = open(*++argv, O_RDONLY | O_BINARY)) == -1) { fprintf(stderr,"Error: Cannot open %s\n",*argv).. 더보기