Vietnamese Developers' Blog

fork()

Posted in C/C++, Unix/Linux/BSD by Hoang Tran on the August 29th, 2007

Một trong thứ hay nhất của *NIX mà M$Windows không có chính là system calls: fork(). Fork tạo ra một process con (child process) là copy (nhân bản) của chính process tạo ra nó (parent process) (làm mình nhớ đến clone() để tạo copy một object trong OOP). Để phân biệt giữa parent process và child process chính là giá trị trả về của hàm fork. Ở parent process thì hàm fork sẽ trả về chính là processID của tiến trình con, còn ở child process thì fork sẽ trả về 0. Fork sẽ trả về 2 lần ở tiến trình cha và tiến trình con.

#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);

(more…)

Tagged with:

Có nên sử dụng “using namespace std” hay không?

Posted in C/C++ by kiennguyen on the August 28th, 2007

Nguồn:
http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.5

Câu trả lời là KHÔNG

Mọi người thường không thích việc phải gõ std:: ở mọi nơi, họ thích sử dụng “using namespace std” hơn vì chỉ với một vài thao tác gõ phím trình dịch sẽ thấy được tất cả các tên trong namespace std. Tuy nhiên điều đó cũng có nghĩa là trình dịch sẽ nhìn thấy cả các tên của namespace std mà bạn không hề có ý định sử dụng chúng. Nghĩa là bạn có thể vô tình tạo ra các tên xung đột với nhau hoặc các tên có ý nghĩa không rõ ràng. Ví dụ, chương trình của bạn sử dụng một biến đếm hoặc một hàm tên là count. Tuy nhiên thư viện chuẩn cũng có một hàm tên là count và điều này có thể gây ra sự nhập nhằng.

Ý nghĩa của việc sử dụng các namespace là để ngăn ngừa việc xung đột giữa các đoạn code được phát triển một cách độc lập. Việc sử dụng “using namespace XYZ” (hay còn gọi là using-directive) sẽ đặt một namespace vào một namespace khác và điều này đi ngược lại với mục đích ban đầu của các namespace.

Sử dụng using-directive là cách đơn giản nhất để chuyển các chương trình C++ cũ sang việc sử dụng các namespace. Tuy nhiên bạn không nên tiếp tục sử dụng chúng trong các chương trình mới.

(more…)

Hello world!

Posted in C/C++ by Hoang Tran on the August 27th, 2007
1
2
3
4
5
6
7
#include <iostream>
#include <cstdlib>
int main()
{
      std::cout << "Hello World!" << std::endl;
      return EXIT_SUCCESS;
}