1eee347684441cda824f409b89498b18bd9bb2aa2Fei Jie#include <stdio.h>
2eee347684441cda824f409b89498b18bd9bb2aa2Fei Jie#include <sys/stat.h>
3eee347684441cda824f409b89498b18bd9bb2aa2Fei Jie
48d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levinvoid
58d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levintest_umask(const mode_t mode)
68d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin{
78d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin	mode_t rc = umask(0xffff0000 | mode);
88d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin	printf("umask(%#03ho) = %#03o\n", (unsigned short) mode, rc);
98d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin}
108d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin
11eee347684441cda824f409b89498b18bd9bb2aa2Fei Jieint
12eee347684441cda824f409b89498b18bd9bb2aa2Fei Jiemain(void)
13eee347684441cda824f409b89498b18bd9bb2aa2Fei Jie{
148d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin	test_umask(0);
158d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin	test_umask(06);
168d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin	test_umask(026);
178d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin	test_umask(0126);
188d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin	test_umask(07777);
198d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin	test_umask(0107777);
208d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin	test_umask(-1);
21eee347684441cda824f409b89498b18bd9bb2aa2Fei Jie
22eee347684441cda824f409b89498b18bd9bb2aa2Fei Jie	puts("+++ exited with 0 +++");
23eee347684441cda824f409b89498b18bd9bb2aa2Fei Jie	return 0;
24eee347684441cda824f409b89498b18bd9bb2aa2Fei Jie}
25