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
|
<pre>
<font color="#0000ff">// Copyright (c) 2001 David Muse</font>
<font color="#0000ff">// See the file COPYING for more information</font>
<font color="#a020f0">#include </font><font color="#ff00ff"><rudiments/permissions.h></font>
<font color="#a020f0">#include </font><font color="#ff00ff"><rudiments/file.h></font>
<font color="#a020f0">#include </font><font color="#ff00ff"><stdlib.h></font>
<font color="#a020f0">#ifdef RUDIMENTS_NAMESPACE</font>
<font color="#a52a2a"><b>using</b></font> <font color="#2e8b57"><b>namespace</b></font> rudiments;
<font color="#a020f0">#endif</font>
<font color="#2e8b57"><b>int</b></font> main(<font color="#2e8b57"><b>int</b></font> argc, <font color="#2e8b57"><b>const</b></font> <font color="#2e8b57"><b>char</b></font> **argv) {
<font color="#0000ff">// Create a file with rw-r--r-- permissions</font>
file fd;
fd.open(<font color="#ff00ff">"/tmp/tempfile"</font>,O_RDWR|O_CREAT,
permissions::evalPermString(<font color="#ff00ff">"rw-r--r--"</font>));
system(<font color="#ff00ff">"ls -l /tmp/tempfile"</font>);
<font color="#0000ff">// change the permissions to rw-rw-r--</font>
permissions::setFilePermissions(fd.getFileDescriptor(),
permissions::evalPermString(<font color="#ff00ff">"rw-rw-r--"</font>));
system(<font color="#ff00ff">"ls -l /tmp/tempfile"</font>);
<font color="#0000ff">// close and delete the file</font>
fd.close();
file::remove(<font color="#ff00ff">"/tmp/tempfile"</font>);
<font color="#0000ff">// do the same as above using different methods</font>
fd.open(<font color="#ff00ff">"/tmp/tempfile"</font>,O_RDWR|O_CREAT,
permissions::ownerReadWrite()|
permissions::groupRead()|
permissions::othersRead());
system(<font color="#ff00ff">"ls -l /tmp/tempfile"</font>);
permissions::setFilePermissions(fd.getFileDescriptor(),
permissions::ownerReadWrite()|
permissions::groupReadWrite()|
permissions::othersRead());
system(<font color="#ff00ff">"ls -l /tmp/tempfile"</font>);
fd.close();
file::remove(<font color="#ff00ff">"/tmp/tempfile"</font>);
}
</pre>
|