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