您正在查看: 系统及框架 分类下的文章
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命令可以以二进制形式查看文本或者程序中的可打印字符串,对与编译器而言,这些串包...阅读全文