Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 访问postgres共享内存_C_Linux_Postgresql - Fatal编程技术网

C 访问postgres共享内存

C 访问postgres共享内存,c,linux,postgresql,C,Linux,Postgresql,我正在CentOS 5和postgresql 9.2上构建自己的C应用程序 我想做的是使用shmat函数访问共享内存区域,并获取pg_stat_activity的详细信息。我不会使用数据库连接,而是直接访问内存 虽然我已经安装了gdb和postgresql的源代码编译,但我不知道从哪一点开始 如果您有任何建议,我们将不胜感激。首先,我同意Jonathan Leffer的观点-当您通过SPI访问表(或视图)时,使用查询语句-它简单、安全、快速,并且不消耗额外的资源 如果您不想使用它,请查看pg_s

我正在CentOS 5和postgresql 9.2上构建自己的C应用程序

我想做的是使用
shmat
函数访问共享内存区域,并获取
pg_stat_activity
的详细信息。我不会使用数据库连接,而是直接访问内存

虽然我已经安装了gdb和postgresql的源代码编译,但我不知道从哪一点开始


如果您有任何建议,我们将不胜感激。

首先,我同意Jonathan Leffer的观点-当您通过SPI访问表(或视图)时,使用查询语句-它简单、安全、快速,并且不消耗额外的资源


如果您不想使用它,请查看pg_stat_活动视图定义。它基于调用pg_stat_get_activity函数。这个功能,可以很好的开始。这个函数看起来并不太复杂-几乎所有代码都是SRF(设置返回函数-函数返回表)的实现。

首先,我同意Jonathan Leffer的观点-当您访问表(或视图)时,使用查询语句-通过SPI-它简单、安全、快速,并且不消耗额外的资源


如果您不想使用它,请查看pg_stat_活动视图定义。它基于调用pg_stat_get_activity函数。这个功能,可以很好的开始。这个函数看起来并不太复杂-几乎所有代码都是SRF(设置返回函数-函数返回表)的实现。

首先,我同意Jonathan Leffer的观点-当您访问表(或视图)时,使用查询语句-通过SPI-它简单、安全、快速,并且不消耗额外的资源


如果您不想使用它,请查看pg_stat_活动视图定义。它基于调用pg_stat_get_activity函数。这个功能,可以很好的开始。这个函数看起来并不太复杂-几乎所有代码都是SRF(设置返回函数-函数返回表)的实现。

首先,我同意Jonathan Leffer的观点-当您访问表(或视图)时,使用查询语句-通过SPI-它简单、安全、快速,并且不消耗额外的资源


如果您不想使用它,请查看pg_stat_活动视图定义。它基于调用pg_stat_get_activity函数。这个功能,可以很好的开始。这个函数不像看上去那么复杂-几乎所有代码都是SRF(设置返回函数-函数返回表)的实现。

第一条建议:不要这样做。除非您完全了解PostgreSQL代码如何处理共享内存,它的定义来自何处,以及如何在不干扰正在运行的DBMS的情况下处理它,否则不要这样做。如果您对此了解得足够多,那么您可能不需要问这个问题——您知道如何设置连接到共享内存的权限。不要这样做。即使你成功了,最终产品也会非常类似于精简版的邮政局长。另一种方法是安装一个信号处理程序,让CHECK_INTERRUPT(sp?)将内容转储到一个命名文件或命名管道中。感谢Jonathan Leffler坦率地说,哈哈。第一个建议:不要这样做。除非您完全了解PostgreSQL代码如何处理共享内存,它的定义来自何处,以及如何在不干扰正在运行的DBMS的情况下处理它,否则不要这样做。如果您对此了解得足够多,那么您可能不需要问这个问题——您知道如何设置连接到共享内存的权限。不要这样做。即使你成功了,最终产品也会非常类似于精简版的邮政局长。另一种方法是安装一个信号处理程序,让CHECK_INTERRUPT(sp?)将内容转储到一个命名文件或命名管道中。感谢Jonathan Leffler坦率地说,哈哈。第一个建议:不要这样做。除非您完全了解PostgreSQL代码如何处理共享内存,它的定义来自何处,以及如何在不干扰正在运行的DBMS的情况下处理它,否则不要这样做。如果您对此了解得足够多,那么您可能不需要问这个问题——您知道如何设置连接到共享内存的权限。不要这样做。即使你成功了,最终产品也会非常类似于精简版的邮政局长。另一种方法是安装一个信号处理程序,让CHECK_INTERRUPT(sp?)将内容转储到一个命名文件或命名管道中。感谢Jonathan Leffler坦率地说,哈哈。第一个建议:不要这样做。除非您完全了解PostgreSQL代码如何处理共享内存,它的定义来自何处,以及如何在不干扰正在运行的DBMS的情况下处理它,否则不要这样做。如果您对此了解得足够多,那么您可能不需要问这个问题——您知道如何设置连接到共享内存的权限。不要这样做。即使你成功了,最终产品也会非常类似于精简版的邮政局长。另一种方法是安装一个信号处理程序,让CHECK_INTERRUPT(sp?)将内容转储到一个命名的文件或命名的管道中。谢谢乔纳森·莱夫勒坦率的讲话哈哈。