GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
KSQL_OPEN(3) FreeBSD Library Functions Manual KSQL_OPEN(3)

ksql_open
open a ksql database connection

library “ksql”

#include <sys/types.h>
#include <stdint.h>
#include <ksql.h>

enum ksqlc
ksql_open(struct ksql *sql, const char *dbfile);

The ksql_open function opens a database connection to dbfile (which must exist) on a handle allocated with ksql_alloc(3). If the handle was allocated with KSQL_FOREIGN_KEYS, a successful open will be followed by a ksql_exec(3) call to enable foreign keys. If the current role does not permit opening databases, an error message is emitted on stderr and the program is immediately terminated.

The ksql_open function handles a locked database (specifically, SQLITE_BUSY, SQLITE_LOCKED, or SQLITE_PROTOCOL) by sleeping for a random interval, then trying again infinitely.

This returns KSQL_ALREADYOPEN if a database connection is already open, KSQL_MEM if memory allocation failed, KSQL_DB if the sqlite3_open(3) function failed, the exit code of ksql_exec(3) if it failed to enable foreign keys, or otherwise KSQL_OK on success.

The following opens a database test.db in split-process mode. For illustrative purpose, it uses pledge(2) to sandbox the controlling parent process. (This security feature is only available on OpenBSD.) For brevity, this does not report an errors.
struct ksql *sql;

sql = ksql_alloc_child(NULL, NULL, NULL);
pledge("stdio", NULL);
ksql_open(sql, "test.db");
/* Do stuff  */
ksql_close(sql);

sqlite3_exec(3), sqlite3_open(3)
April 20, 2018 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.