본문 바로가기

분류 전체보기114

C언어 여러가지 파일(.c .h 등) 한꺼번에 컴파일, 실행 (Makefile) 1. object 파일 만들기 - 헤더파일(.h)은 main.c 등에 명시되어 있으므로 따로 만들지 않아도 된다. $ gcc -c -o main.o main.c $ gcc -c -o A.o A.c $ gcc -c -o B.0 B.c ... (main.c를 컴파일하여 main.o라는 이름의 파일을 만든다.) - 모든 c파일(.c)에 해당하는 오브젝트 파일(.o)을 만들어야 한다. 2. object 파일 묶기 $ gcc -o a.out main.o A.o B.o ... - object 파일들을 묶어 하나의 실행파일 (a.out)을 만든다. 3. Makefile 만들기 ( Makefile을 만드는 기본 원리는 다음과 같으나 잘 이해가 되지 않으니 예제를 통해 보는것이 낫다. ) : (tab) * : 대상 / .. 2022. 5. 10.
[C언어_파일처리] 랜덤읽기 (레코드 랜덤 읽기) OS : Linux 우분투 버전 18.04 컴파일러 : gcc 7.5 주어진 파일에 저장되어 있는 모든 레코드를 랜덤(random)하게 하나씩 사용자 프로그램 상으로 읽어 들이며, 이 과정에서 발생하는 전체 시간 비용을 출력한다. 아래 예시와 같이, 명령의 실행 후 화면에 그 시간 비용을 usec 단위의 정수값으로 출력한다. a.out $ a.out student.dat 120300 usec - rand_read.c #include #include #include #include #include #include //#define SUFFLE_NUM10000// 이 값은 마음대로 수정 가능 void GenRecordSequence(int *list, int n); void swap(int *a, int *.. 2022. 4. 12.
[C언어_파일처리] 순차읽기(레코드 순차 읽기) OS : Linux 우분투 버전 18.04 컴파일러 : gcc 7.5 주어진 파일에 저장되어 있는 모든 레코드를 순차적으로(sequential) 하나씩 사용자 프로그램 상으로 읽어 들이며, 이 과정에서 발생하는 전체 시간 비용을 출력한다 (gettimeofday() 함수 등을 사용). 아래 예시와 같이, 명령의 실행 후 화면에 그 시간 비용을 usec 단위의 정수값으로 출력한다. a.out $ a.out student.dat 3200 usec - seq_read.c #include #include #include #include //필요하면 header file 추가 가능 // input parameters: 레코드 파일 // int main(int argc, char **argv) { struct ti.. 2022. 4. 12.
[C언어_파일처리] 학생 레코드 파일 생성 OS : Linux 우분투 버전 18.04 컴파일러 : gcc 7.5 student.h에 정의되어 있는 ‘Student’ 타입을 이용하여 주어진 파일에 학생 레코드를 하나씩 반복적으로 수만큼 저장한다. 학생 레코드의 크기는 200 바이트이며 레코드에는 굳이 의미있는 데이터를 채울 필요가 없으며 심지어 모든 학생 레코드의 데이터가 동일해도 상관없다. 단, 각 학생 레코드의 크기는 반드시 200 바이트가 되어야 한다. 명령의 실행 후 화면에 출력값은 없다. a.out * 참고로 레코드는 한 줄을 기준으로 한다. 예를들어 레코드 하나의 크기가 200바이트이고 이러한 레코드가 5개 있다면, 파일 안에는 총 5줄이 입력되고 각 줄은 200바이트의 내용이 들어있게된다. - create_records.c #inclu.. 2022. 4. 12.
[PL] Syntax, Semantics 관련 문제 풀이 (정답) 보호되어 있는 글 입니다. 2022. 4. 7.
[C언어_파일처리] 레코드 파일 생성 2022. 4. 7.