如何用C语言编写两个程序,通过公共函数/代码利用共享内存
我有一个程序有矩阵乘法代码,另一个程序有矩阵乘法(和第一个程序一样)和加法程序。我想实现/实现公共矩阵乘法代码的共享内存页概念(这样,在4K页面中,只有一个乘法代码的副本加载到主内存中) 我该怎么做 我应该把它们作为共享库吗 或 我应该在一个单独的文件中声明和定义矩阵乘法和加法代码,然后创建共享库,然后使用共享库吗?这能保证只有一个乘法码拷贝加载到内存中吗 我在linux下使用gcc如何用C语言编写两个程序,通过公共函数/代码利用共享内存,c,linux,gcc,operating-system,shared-memory,C,Linux,Gcc,Operating System,Shared Memory,我有一个程序有矩阵乘法代码,另一个程序有矩阵乘法(和第一个程序一样)和加法程序。我想实现/实现公共矩阵乘法代码的共享内存页概念(这样,在4K页面中,只有一个乘法代码的副本加载到主内存中) 我该怎么做 我应该把它们作为共享库吗 或 我应该在一个单独的文件中声明和定义矩阵乘法和加法代码,然后创建共享库,然后使用共享库吗?这能保证只有一个乘法码拷贝加载到内存中吗 我在linux下使用gcc 非常感谢您的帮助 只需创建一个包含公共代码的共享库(.so)——这就是您所需要做的。查看一个非常类似的问题参见m
非常感谢您的帮助 只需创建一个包含公共代码的共享库(.so)——这就是您所需要做的。查看一个非常类似的问题参见
man 3 shm_open
和man 2 mmap
。基本上,您先shm_open(),然后使用mmap()获取文件描述符,例如,在使用strcpy()或其他方法访问它之前,可以使用ftruncate()获取文件描述符。