数据管理涉及三个方面:
1:动态内存管理:linux程序决部允许直接访问物理内存
1.1:简单的内存分配
#include<stdlib.h>
void* malloc(size_t size);
#include <iostream> #include <cstring> #include <cstdlib> #include <unistd.h> using namespace std; #define A_MEGABYTE (1024*1024) int main() { char* some_memory; int megabyte=A_MEGABYTE; int exit_code=EXIT_FAILURE; some_memory=(char *)malloc(megabyte); if(some_memory!=NULL) { strcpy(some_memory,"Hello world!\n"); cout<<some_memory<<endl; exit_code=EXIT_SUCCESS; } exit(exit_code); }
1.2:malloc函数可以保证其返回的内存是地址对齐的,所以可以被转换成任意类型的指针。
1.3:linux内核使用空闲的物理内存满足应用程序的内存请求,当物理内存使用完后,它开始使用交换空间,相当于windous的交换文件。
1.4:释放内存
#include<stdlib.h>
void free(void *ptr_to memory);
1.5:其他内存分配函数
void *calloc(size_t number_of_elements,size_t element_size);
void *realloc(void *existing_memory,size_t new_size);
2:文件锁定:linux提供多种特性实现文件锁定,最简单的方式就是创建锁文件。锁文件仅仅是充当一个指示器的角色,程序间通过相互协作来使用他们。
2.1:创建锁文件
#inclue<fcntl.h>
open(“pathname”,O_RDWR|O_CREAT|O_EXCL,mode_t mode);
以原子方式同时完成两个工作:确定文件不存在,然后创建它。
2.2:临界区:在进入临界区之前,使用open系统调用创建锁文件,然后在退出临界区时使用unlink系统调用删除锁文件
转载于:https://my.oschina.net/yulongjiang/blog/265045
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/109829.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...