数据管理

数据管理

数据管理涉及三个方面:

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


相关推荐

  • 获取@ApiModelProperty注解的value与对应的类属性名

    获取@ApiModelProperty注解的value与对应的类属性名目标类 代码实现 publicclassT publicstatic String args Propertiesdi getApiModelP com tfjybj msg model DingLinkMess System out println dingLinkMess pu

    2025年7月8日
    2
  • iptable配置[通俗易懂]

    iptable配置[通俗易懂]简介:iptables是与最新的2.4.x版本Linux内核集成的IP信息包过滤系统。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好地控制IP信息包过滤和防火墙配置。—来自百度百科配置使用说明:1.封IP1>.单个IP的命令是iptables-IINPUT-s

    2022年5月8日
    62
  • Nginx修改默认端口80

    Nginx修改默认端口80前言    安装流程请参考我的文章–Windows下安装Nginx。    博客地址:https://blog.csdn.net/zengwende/article/details/86610692修改步骤1、打开Nginx的配置文件nginx.conf2、修改默认端口的值即可(nginx默认的端口为80) …

    2025年10月6日
    3
  • Android.mk各种文件编译汇总

    Android.mk各种文件编译汇总

    2022年2月2日
    239
  • QFile写文件 中文乱码解决方法

    QFile写文件 中文乱码解决方法QFile*m_pLogFile;m_pLogFile=newQFile("./log.txt");QStringmsgStr="中文";QStringmsgStr2=ChString("testresult2");QStringmsgStr3=QStringLiteral("中文3");m_pLog…

    2022年6月3日
    218
  • python动力学_用python学振动分析(一)

    python动力学_用python学振动分析(一)因为最近需要重新用到pytorch,而且在颤振分析时遇到一些不理解的问题,所以用python重新学习了振动分析(程序太长就不放这里了,回头整理下放github算了),准备自己手撸一个时域结构动力学仿真程序。结构动力学基础噪音来自部分振动能量在空气中发散,故噪音和振动问题的研究方向是一致的,而振动问题的研究基础是结构动力学。静力学研究在定力作用下的位移,基础是外驱力和静刚度引起的回弹力的平衡,动力学…

    2022年10月16日
    6

发表回复

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

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