C/C++ Learning

您正在查看: 系统及框架 分类下的文章

Linux进程间通信方式概述(IPC)

文章内容摘自:http://www.ibm.com/developerworks/cn/linux/l-ipc/index.html#authorN10017一般来说,linux下的进程包含以下几个关键要素:  有一段可执行程序;  有专用的系统堆栈空间;  内核中有它的控制块(进程控制块),描述进程所占用的资源,这样,进程才能接受内核的调度;  具有独立的存储空间进程和线程有时候并不完全区...阅读全文

linux进程创建之fork()、vfork()以及clone(...)

fork  fork创建一个进程时,子进程只是完全复制父进程的资源,复制出来的子进程有自己的task_struct结构和pid,但却复制父进程其它所有的资源。例如,要是父进程打开了五个文件,那么子进程也有五个打开的文件,而且这些文件的当前读写指针也停在相同的地方。所以,这一步所做的是复制。这样得到的子进程独立于父进程, 具有良好的并发性,但是二者之间的通讯需要通过专门的通讯机制,如:pipe...阅读全文

C/C++获取系统物理内存大小

1、各平台调用接口2、接口实现 #if defined(_WIN32) #include <Windows.h> #elif defined(__unix__) || defined(__unix) || defined(unix) || (defined(__APPLE__) && defined(__MACH__)) #include <unistd....阅读全文

如何通过宏来判断处理器类型(How to detect the processor type using compiler predefined macros)

1、ItaniumA.K.A.: IA64 Developer: Intel Processors: Itanium, Itanium 2, Itanium 2 9000/9100/9300, etc. 代码: #if defined(__ia64) || defined(__itanium__) || defined(_M_IA64) /* Itanium ----...阅读全文

如何通过宏来判断操作系统的类型(How to detect the operating system type using compiler predefined macros)

1、AIXDeveloper: IBM Distributions: AIX Processors: POWER代码: #if defined(_AIX) /* IBM AIX. ------------------------------------------------- */ #endif2、BSDDeveloper: Open source Dist...阅读全文

如何通过宏来检查编译器名称和版本信息(How to detect the compiler name and version using compiler predefined macros)

1、如何检查编译器名称 代码: #if defined(__clang__) /* Clang/LLVM. ---------------------------------------------- */ #elif defined(__ICC) || defined(__INTEL_COMPILER) /* Intel ICC/ICPC. ------------------------...阅读全文

如何查看编译器的宏(How to list compiler predefined macros)

大多数编译器都有命令行选项来列出所支持的宏注:在某些开源的编译器源码中也可以找到支持的宏如:Clang 、LLVM中宏主要定义文件为llvm/tools/clang/lib/Basic/Targets.cpp GCC 、 G++中宏主要定义文件为gcc/config/* 题外小知识:linux中有一个strings命令可以以二进制形式查看文本或者程序中的可打印字符串,对与编译器而言,这些串包...阅读全文