Bài giảng Hệ điều hành linux: Chương 8 Lập Trình C trong Linux do Ngô Văn Công biên soạn cung cấp các kiến thức cơ bản như: Hello world program, ngôn ngữ C, trình biên dịch make,...
Lập Trình C Linux Nội dung Giới thiệu Hello world program Ngơn ngữ C Trình biên dịch make Giới thiệu Ngơn ngữ lập trình C lựa chọn tốt cho người học lập trình Đơn giản, mạnh sử dụng rộng Linux mơi trường thích hợp để viết chương trình Khơng cần chi phí mua phầm mềm hỗ trợ lập trình đắt tiền Để viết chương trình C Trình soạn thảo văn bản(vi,gedit,emacs) Trình biên dịch Thư viện chuẩn Biên dịch với gcc Trình biên dịch(compiler): chuyển từ “humanreadable source code” sang ”machinereadable object code” GCC: bao gồm trình biên dịch C, C++, Java Cách sử dựng [CODE]% gcc [ tùy chọn | tên file ] Giả sử bạn có file myfile.c bạn đánh : % gcc myfile.c Trong thư mục bạn có thêm file a.out file output mặc định gcc Lúc bạn run chương trình : % /a.out (tt) Nhưng bạn compile file file a.out bạn bị ghi đè file thứ Để khắc phục bạn sử dụng tùy chọn -o để đặt tên file out put % gcc -o myout myfile.c Khi bạn compile program, bạn có errors nhỏ gcc thay bạn sửa chửa lỗi (trừ lỗi lớn) Nhưng thực tế' phải tự sửa lỗi để chương trình sau compile bug-free Bạn thêm tùy chọn -Wall (viết tắt Warning All Thông báo tất lỗi) % gcc -Wall -o myout myfile.c Chương trình Hello Biên dịch gcc -o hello hello.c (hello.c) #include int main() { printf("Hello, world!\n"); return 0; } #include : thêm tệp tên stdio.h phép sử dụng số lệnh(Standard Input/Ouput) Int main(): Int giá trị trả hàm main(), main tên điểm bắt đầu chương trình {}: nhóm lệnh lại printf("Hello World\n"): hiển thị văn lên hình return 0: trả cho hàm main Thụt đầu dịng thích printf return thụt vào đầu dòng so với bên trái để làm cho đoạn mã dễ đọc Chú thích /* Author: Your name Date: yyyy/mm/dd Description: Writes the words "Hello World" on the screen */ #include int main() { printf("Hello World\n"); //prints "Hello World" return 0; } Biến Biến: biến C vị trí nhớ đặt tên Giá trị số: nguyên hay thực Biến ký tự Hằng: thay đổi giá trị Khai báo biến Biến Khai báo biến Biến dạng Signed unsigned int main() { int a; char b; return 0; } int main() { int a,b,c; return 0; } int main() { const float pi = 3.14; return 0; } int main() { unsigned int a; signed int b; return 0; } Đọc hiển thị biến scanf: đọc giá trị nhập từ bàn phím #include int main() { int a; scanf("%d",&a); a = a * 2; printf("The answer is %d",a); return 0; } Chú ý int *ip; *ip = 100; Báo lỗi (program crash!!) Đoạn code là: int *ip; int x; ip = &x; *ip = 100; Khai báo mảng int a[5]; a[0] = 12; a[1] = 23; a[2] = 34; a[3] = 45; a[4] = 56; printf("%d",a[0]); Hàm(Function) Hàm chương trình Khai báo hàm trước sử dụng #include int Add(int a,int b) { return a + b; } int main() { int answer; answer = Add(5,7); printf(“ket qua=%d”,answer); return 0; } Câu lệnh make Cho phép bạn quản lý chương trình lớn Dịch lại chương trình lớn lâu nhiều so với dịch chương trình nhỏ Make giúp bạn phát triển chương trình lớn mà theo vết thay đổi so với lần biên dịch trước Q trình biên dịch đơn giản Biên dịch với nhiều tệp Biên dịch với nhiều tệp Compile green.o: gcc -c green.c Compile blue.o: gcc -c blue.c Link the parts together: gcc green.o blue.o Chú ý chia chương trình C thành nhiều tệp Khơng có hàm tên Nếu dùng biến toàn cục, ý khơng cị tệp định nghĩa biến Khai báo biến toàn cục tệp:extern int globalvar; Khi dùng hàm định nghĩa tệp khác, tạo tệp h với prototype hàm dùng từ khóa #include để thêm tệp h vào tệp c bạn Khi bạn định nghĩa biến:int globalvar; Khi bạn khai báo biến:extern int globalvar; Biểu đồ phụ thuộc(Dependency graphs) Cách hoạt động make Makefile target : source file(s) command (must be preceded by a tab) Sử dụng makefile với make head.h Add.c gcc –c add.c Int add(int a, int b); #include “head.h” Int add(int a, int b) { return a+b; } #include #include “head.h” Main.c gcc –c main.c Int main() gcc add.o main.o –o main { printf(“%d”,add(2,3)); } Biên dịch gcc –c add.c gcc –c main.c gcc add.o main.o –o vidu1 Makefile program1: add.o main.o gcc add.o main.o –o vidu1 add.o: add.c head.h gcc –c add.c main.c: head.h main.c gcc –c main.c ... sửa lỗi để chương trình sau compile bug-free Bạn thêm tùy chọn -Wall (viết tắt Warning All Thông báo tất lỗi) % gcc -Wall -o myout myfile.c Chương trình Hello Biên dịch gcc -o hello hello.c... 0; } Câu lệnh make Cho phép bạn quản lý chương trình lớn Dịch lại chương trình lớn lâu nhiều so với dịch chương trình nhỏ Make giúp bạn phát triển chương trình lớn mà theo vết thay đổi so... dịch với nhiều tệp Compile green.o: gcc -c green.c Compile blue.o: gcc -c blue.c Link the parts together: gcc green.o blue.o Chú ý chia chương trình C thành nhiều tệp Khơng có hàm tên Nếu