不能';t store key:在cgi bin下运行c程序时出现系统错误
当我在CentOS 6.4上从命令行运行以下程序时,我得到了预期的结果,但当我以Apache cgi运行它时,我的错误不能';t store key:在cgi bin下运行c程序时出现系统错误,c,apache,memcached,libmemcached,C,Apache,Memcached,Libmemcached,当我在CentOS 6.4上从命令行运行以下程序时,我得到了预期的结果,但当我以Apache cgi运行它时,我的错误无法存储key:SYSTEM errorerror。我通过同一个用户运行Memcached、Apache和program 我可能做错了什么 #include<stdio.h> #include<string.h> #include <libmemcached/memcached.h> int main(int
无法存储key:SYSTEM error
error。我通过同一个用户运行Memcached、Apache和program
我可能做错了什么
#include<stdio.h>
#include<string.h>
#include <libmemcached/memcached.h>
int main(int argc, char **argv) {
memcached_server_st *servers = NULL;
memcached_st *memc;
memcached_return rc;
char *key= "keystring";
char *value= "keyvalue";
char *key1= "keystring1";
char *value1= "keyvalue1 ";
memc= memcached_create(NULL);
servers= memcached_server_list_append(servers, "localhost", 11211, &rc);
rc= memcached_server_push(memc, servers);
printf("Content-Type: text/plain;charset=us-ascii\n\n");
if (rc == MEMCACHED_SUCCESS)
printf("Added server successfully\n");
else
printf("Couldn't add server: %s\n",memcached_strerror(memc, rc));
rc= memcached_set(memc, key, strlen(key), value, strlen(value), (time_t)0, (uint32_t)0);
if (rc == MEMCACHED_SUCCESS)
printf("Key stored successfully\n");
else
printf("Couldn't store key: %s\n",memcached_strerror(memc, rc));
char *keys[]= {"keystring", "keystring1"};
size_t key_length[]= {9, 10};
unsigned int x;
uint32_t flags;
char return_key[MEMCACHED_MAX_KEY];
size_t return_key_length;
char *return_value;
size_t return_value_length;
rc= memcached_mget(memc, keys, key_length, 2);
x= 0;
if (rc == MEMCACHED_SUCCESS)
{
while ((return_value= memcached_fetch(memc, return_key, &return_key_length,
&return_value_length, &flags, &rc)))
{
if (rc == MEMCACHED_SUCCESS)
{
printf("Key %s returned %s\n",return_key, return_value);
}
}
}
return 0;
}
#包括
#包括
#包括
int main(int argc,字符**argv){
memcached_server_st*servers=NULL;
memcached_st*memc;
memu返回rc;
char*key=“keystring”;
char*value=“keyvalue”;
char*key1=“keystring1”;
char*value1=“keyvalue1”;
memc=memcached_create(NULL);
servers=memcached\u server\u list\u append(服务器,“localhost”、11211和rc);
rc=memcached\u server\u push(memc,服务器);
printf(“内容类型:text/plain;charset=us ascii\n\n”);
if(rc==MEMCACHED\u SUCCESS)
printf(“已成功添加服务器\n”);
其他的
printf(“无法添加服务器:%s\n”,memcached_strerror(memc,rc));
rc=memcached_集(memc,key,strlen(key),value,strlen(value),(time_t)0,(uint32_t)0);
if(rc==MEMCACHED\u SUCCESS)
printf(“密钥已成功存储\n”);
其他的
printf(“无法存储密钥:%s\n”,memcached_strerror(memc,rc));
char*keys[]={“keystring”,“keystring1”};
大小键长[]={9,10};
无符号整数x;
uint32_t标志;
char return_key[MEMCACHED_MAX_key];
大小\返回\键\长度;
char*返回_值;
大小\返回值\长度;
rc=memcached_mget(memc,key,key长度,2);
x=0;
if(rc==MEMCACHED\u SUCCESS)
{
而((return_value=memcached_fetch)(memc、return_key和return_key长度,
&返回值(长度、标志和rc)))
{
if(rc==MEMCACHED\u SUCCESS)
{
printf(“键%s返回%s\n”,返回\u键,返回\u值);
}
}
}
返回0;
}
最终通过禁用SELINUX摆脱了错误