Chương trình trên Linux:

Một phần của tài liệu document (Trang 30 - 31)

LẬP TRÌNH TRÊN LINU

4.2 Chương trình trên Linux:

Với tư cách là nhà phát triển chương trình bạn cần nắm rõ một số vị trí đặt tài nguyên để xây dựng chương trình như trình biên dịch, file thư viện, các file header khai báo hàm cấu trúc dữ liệu, các file chương trình sau khi biên dịch sẽ được đặt ở đâu..

Trình biên dịch gcc thường được đặt trong thư mục /usr/bin hoặc /usr/local/bin. Tuy

nhiên khi biên dịch gcc cần đến nhiều file hỗ trợ nằm trong các thư mục khác như các file C header thường được đặt trong thư mục /usr/includehay /usr/local/include. Các file thư viện liên kết thường được gcc tìm trong thư mục /lib hoặc /usr/local/lib. Các thư viện chuẩn của gcc

thường đặt trong thư mục /usr/lib/gcc-lib

Chương trình của bạn sau khi biên dịch ra có thể đặt ở bất kỳ nơi đâu trong hệ thống, miễn là hệ điều hành có thể tìm thấy trong biến mơi trường PATH hoặc trên đường dẫn tuyệt đối khi bạn gọi chương trình từ dịng lệnh.

Các file header trong C thường định nghĩa hàm và khai báo các hàng cộng với cấu trúc dữ liệu cần thiết cho quá trình biên dịch. Hầu hết các chương trình trên Linux khi biên dịch sử dụng các file header trong thư mục /usr/include hoặc các thư mục con bên dưới thư mục này. Ví dụ như /usr/include/asm, /usr/include/sys. Trong các chương trình C sau này có thể bạn sẽ gặp các khai báo như:

#include<sys/types.h>

Trình biên dịch lúc này sẽ tìm file header mang tên types.htrong thư mục con sys của

/usr/include. Một số thư mục chứa file header được các trình biên dịch dị tìm măc định như /usr/include/x11 đối với các khai báo hàm lập trình đồ họa X-Window. Hoặc thư mục

/usr/include/g++ -2đối với trình biên dịch GNU g++.

Ví dụ viết một chương trình giải phương trình bậc 2 bằng ngơn ngữ C, biên dịch và chạy trên Linux. #include<stdio.h> #include<math.h> int main() { float a,b,c,x1,x2,delta; do{ printf("\nNhap vao he so a \n") ; scanf("%f",&a) ; } while(a==0) ; printf("\nNhap vao he so b \n") ; scanf("%f",&b) ; printf("\nNhap vao he so c \n") ;

scanf("%f",&c) ; delta = b*b - 4*a*c ; if (delta<0)

printf("\nphuong trinhh vo nghiem") ; else if (delta==0)

printf("\nphuong trinh co nghiem kep x= %f ",-b/(2*a)); else

printf("\nPhuong trinh co nghiem \n x1=%f \nx2=%f"); exit(0); } Biên dịch chương trình gcc main.c main ./main 4.3 Tiến trình (process)

Một thể hiện đang chạy của một chương trình được gọi là một tiến trình (process). Ví dụ chúng ta có 2 ứng dụng cửa sổ terminal trên màn hình chúng ta xem như có 2 tiến trình đang

chạy. Mỗi cửa sổ terminalđang thực thi một shell. Mỗi shell là một tiến trình khác nhau. Khi nhập một lệnh vào từ mỗi shell, chương trình sẽ thực thi một tiến trình mới, khi tiến trình mới

này kết thúc thì tiến trìnhshelllại được tiếp tục.

Lập trình trên Linux thường sử dụng nhiều tiến trình trong một ứng dụng để cho phép ứng dụng có thể thực thi nhiều cơng việc hơn nhằm làm gia tăng tính hiệu quả của ứng dụng.

Hầu hết các hàm xử lý các tiến trình mơ tả trong phần này tương tự như trong các hệ thống Unix khác. Hầu hết được khai báo trong tập tin unistd.h

Một phần của tài liệu document (Trang 30 - 31)