1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
.TH LIBCONTACTS_SAVE_CONTACT 3 LIBCONTACTS
.SH NAME
libcontacts_save_contact \- Save a contact
.SH SYNOPSIS
.nf
#include <libcontacts.h>
int libcontacts_save_contact(struct libcontacts_contact *\fIcontact\fP, const struct passwd *\fIuser\fP);
.fi
.PP
Link with
.IR -lcontacts .
.SH DESCRIPTION
The
.BR libcontacts_save_contact ()
function saves the contact entry that is specified in the
.I contact
parameter.
.PP
If
.I contact->id
is
.I NULL
an ID will be assigned to it, and stored in
.IR contact->id .
If the call is successful, the caller must manually
free this ID, if the function
assignee's it, using the
.BR free (3)
function.
.PP
.I user
shall be the user's entry in the password database (not
the shadow database). This is used for the get user's
home directory.
.SH RETURN VALUE
The
.BR libcontacts_save_contact ()
function returns 0 upon successful completion;
otherwise -1 is returned and
.I errno
is set appropriately to indicate the error.
.SH ERRORS
The
.BR libcontacts_save_contact ()
function will fail if:
.TP
.B 0
The file it saves contains a NUL byte.
.PP
The
.BR libcontacts_save_contact ()
function may fail for any reason specified for the
.BR libcontacts_format_contact (3),
.BR libcontacts_get_path (3),
.BR malloc (3),
.BR open (3)
(other than
.IR EEXIST ),
.BR mkdir (3)
(other than
.IR EEXIST ),
.BR write (3),
.BR fsync (3),
and
.BR rename (3)
functions.
.SH SEE ALSO
.BR libcontacts.h (0),
.BR libcontacts (7),
.BR libcontacts_load_contact (3),
.BR libcontacts_loads_contact (3),
.BR libcontacts_contact_destroy (3),
.BR libcontacts_format_contact (3)
|