1 /* (c) Copyright Hewlett-Packard Development Company, L.P., 2007
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of version 2 the GNU General Public License as
5 * published by the Free Software Foundation.
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
12 * You should have received a copy of the GNU General Public License
13 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 #include <selinux/selinux.h>
20 int main(int argc
, char **argv
)
26 fprintf(stderr
, "Usage:\n%s <path> <create|read|write|rdwr> [context]\n",
31 if (!strcmp(argv
[2], "create")) {
32 /* use O_EXCL on create to catch cleanup problems */
33 flags
|= O_CREAT
|O_EXCL
;
34 } else if (!strcmp(argv
[2], "read")) {
36 } else if (!strcmp(argv
[2], "write")) {
38 } else if (!strcmp(argv
[2], "rdwr")) {
41 fprintf(stderr
, "Usage:\n%s <path> <create|read|write|rdwr> [context]\n",
46 if ((argc
> 3) && (setfscreatecon(argv
[3]) < 0)) {
47 perror("do_mq_open: setfscreatecon");
52 exitval
= mq_open(argv
[1], flags
, S_IRWXU
, NULL
);
55 printf("%d %d %d\n", result
, result
? errno
: exitval
, getpid());