数据管理

数据管理

数据管理涉及三个方面:

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109829.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java保留n位小数输出的几种方法

    java保留n位小数输出的几种方法一、四舍五入吧并保留两位小数类似于c语言printf的输出printf():doublex=8.055;System.out.printf(“%.2f\n”,x);//8.06format():doublex=8.055;System.out.format(“%.2f\n”,x);//8.06format()方法将double型转换为String型再输出1…

    2022年7月8日
    106
  • oracle 存储过程

    oracle 存储过程

    2021年7月7日
    74
  • layoutSubviews总结

    layoutSubviews总结ioslayout机制相关方法-(CGSize)sizeThatFits:(CGSize)size-(void)sizeToFit——————–(void)layoutSubviews-(

    2022年7月1日
    22
  • Qt 下载安装

    Qt 下载安装文章目录Qt下载,安装多种渠道下载1Qt官方下载(慢)2Qt国内镜像下载(较快)3迅雷下载(快)安装Qt下载,安装多种渠道下载1Qt官方下载(慢)http://download.qt.io/archive和official_releases两个目录都有最新的Qt开发环境安装包。Archive—qt这个qt目录包含了所有的Qt版本,从1.0到目前的5….

    2022年5月13日
    153
  • windows elk搭建_windows搭建ftp系统

    windows elk搭建_windows搭建ftp系统前提条件,已有如下红色线中安装包:资源路径:https://download.csdn.net/download/lijiaheng525/10789382(无下载的积分的留言,可以私下发你)第一步:下载nodejs并安装,然后在安装的目录下执行如下命令,安装grunt(head插件需要用到grunt命令):第二步:切换到head插件的解压目录,安装pathomj…

    2022年10月8日
    0
  • C# WinForm 设置DataGridView选中指定行

    C# WinForm 设置DataGridView选中指定行introwIndex=3;//指定行号this.dgvInGoodsInfo.Rows[rowIndex].Selected=true;this.dgvInGoodsInfo.CurrentCell=this.dgvInGoodsInfo.Rows[rowIndex].Cells[2];也有其他网友代码Cells[0];如下:我试了,填0和1调试报…

    2022年7月15日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号