Symbian3/SDK/Source/GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Thu, 21 Jan 2010 18:18:20 +0000
changeset 0 89d6a7a84779
child 2 ebc84c812384
permissions -rw-r--r--
Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-3314123F-205D-5E05-9041-DB9836B7812B" xml:lang="en"><title>File
Access Example: Accessing the File System Using P.I.P.S.</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>This example application shows, using a P.I.P.S. (P.I.P.S. Is POSIX on
Symbian platform) program, the restrictions on file access that are imposed
by the Symbian platform Security model. </p>
<p>It shows that programs can access their own directories, but cannot, without
platform security capabilities not available to ordinary programs, access
the directories of other programs, or the system binary directory <filepath>sys/bin</filepath>. </p>
<p>This example defines an executable file with no platform security capabilities.
The program first creates its own secure directory that it can write to and
read from. It then attempts to use a file in a private directory of another
program, and then in <filepath>sys/bin</filepath>, and shows that these attempts
are denied. </p>
<section><title>Download</title> <p>Click on the following link to download
the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-2dae3cca-f112-4219-8f7c-6c48682d1f28.zip" scope="external">FileAccessExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-2dae3cca-f112-4219-8f7c-6c48682d1f28.html" scope="peer">browse</xref> to view the example code. </p> </section>
<section><title>Description</title> <p>The following sections provide more
information about the steps that the example performs. </p> <p><b> Create
a secure directory</b> </p> <p>The example creates an empty secure directory
for the program by using the <xref href="GUID-5EA72F64-E826-3B15-9468-902BD57F6AA7.dita"><apiname>mkdir()</apiname></xref> function. </p> <p>This
empty secure directory is created in <filepath>C:\private\E80000C9</filepath>,
as 0xE80000C9 is a unique identifier for the program (as specified by the
third UID in its project file). </p></section>
<section> <p><b>Write and read a file in the private directory </b> </p> <p>The
example writes and reads a file in the secure directory using the <xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref> and
other file stream functions. </p> <p><b> Write and read a file in the private
directory of another program </b> </p> <p>The example attempts to write and
read a file in the secure directory of another program. </p> <p>The <xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref> function
is expected to return <codeph>NULL</codeph>, indicating that access is not
possible, as the program has insufficient platform security capabilities. </p><p><b> Write
and read a file in the sys/bin directory</b> </p> <p>The example attempts
to write and read a file in the system's <filepath>sys/bin</filepath> directory,
where program binaries are stored. </p> <p>Again, the <xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref> function
is expected to return <codeph>NULL</codeph>, indicating that access is not
possible, as the program has insufficient platform security capabilities. </p> </section>
<section><title>Releated APIs</title><p><xref href="GUID-5EA72F64-E826-3B15-9468-902BD57F6AA7.dita"><apiname>mkdir()</apiname></xref></p><p><xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref></p></section>
<section><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian
platform build process</xref> describes how to build this example application. </p> <p>The
example builds an executable called <filepath>fileaccessexample.exe</filepath> in
the standard locations. </p> <p>To run the example, start <filepath>fileaccessexample.exe</filepath> from
the file system or from your IDE. After launching the executable, depending
on the emulator you are using, you may need to navigate away from the application
launcher or shell screen to view the console. </p> </section>
</conbody></concept>