这样做好/安全/可靠,为什么?
int main()
{
MYSQL *mysqldbconn = mysql_init(NULL);
if(mysqldbconn != NULL)
{
if(mysql_real_connect(mysqldbconn, host,
user, password,
NULL, port, NULL, 0) != NULL)
{
pid_t pid = fork();
if(pid >= 0)
{
if(pid == 0)
{
mysql_query(mysqldbconn, "insert into `test`.`abc`(`x`, `y`) values (1, 2)");
exit(0);
}
else
{
mysql_query(mysqldbconn, "insert into `test`.`abc`(`x`, `y`) values (3, 4)");
usleep(1000000);
}
}
}
}
return 0;
}
我想知道是否应该为每个子进程打开一个新的连接,或者我可以只在开始时连接一次,然后在每个派生的子进程中使用它。
上面的用法示例是否可能导致危险的数据争用? mysql_query
是原子的吗?
谢谢您的建议。