数据管理

数据管理

数据管理涉及三个方面:

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 选择排序

    选择排序

    2021年12月16日
    42
  • python手机编程软件-盘点几个在手机上可以用来学习编程的软件[通俗易懂]

    python手机编程软件-盘点几个在手机上可以用来学习编程的软件[通俗易懂]前天在悟空问答的时候,很荣幸被邀请参加回答“在手机上可以用来学习编程的软件有哪些?”这个问题,当时在回答的首页看到一个头条大微(小小猿爱嘻嘻)的回答,觉得十分受用,在此将其整理好,发布头条给大家学习,希望对大家学习编程有帮助。感谢大佬提供的解答,原文可以点击拓展链接进行查看。学习编程的软件其实挺多的,下面我简单几个可以在手机上编程的软件,主要分为C/C++,Java,Python,前端网页,Lin…

    2022年9月10日
    2
  • iReport 设计介绍「建议收藏」

    iReport 设计介绍「建议收藏」目录iReport用户手册………………………………………………………………………………………………1iReport用户手册-介绍………………………………………………..

    2022年9月10日
    3
  • PHP结合Ueditor并修改图片上传路径

    PHP结合Ueditor并修改图片上传路径

    2021年9月18日
    40
  • img图片加载失败?

    img图片加载失败?问题场景在工作中经常会使用标签进行图片展示,但是经常有图片加载失败的情况发生(图片地址不存在、图片已经删除等)。场景再现图片加载失败时的用户体验是很不好的。虽然标签有alt属性可以展示文本,但是用户体验依然差。代码:&amp;amp;amp;amp;amp;amp;lt;imgalt=&amp;amp;amp;amp;amp;quot;头像&amp;amp;amp;amp;amp;quot;src=&amp;amp;amp;amp;amp;quot;$

    2022年6月2日
    50
  • centos安装mysql客户端安装_CENTOS安装MYSQL

    centos安装mysql客户端安装_CENTOS安装MYSQL1[root@localhost~]#yuminstallmysql-server注意:此处错误提示为安装失败。原因:CentOS7自带有MariaDB而不是MySQL,MariaDB和MySQL一样也是开元的数据库解决方案:如果必须要安装MySQL,首先必须添加mysql社区repo通过输入命令:sudorpm-Uvhhttp://dev.mysql.com/get/mysql-c…

    2022年6月26日
    28

发表回复

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

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