Symbian3/SDK/Source/GUID-3314123F-205D-5E05-9041-DB9836B7812B.dita
changeset 7 51a74ef9ed63
child 8 ae94777fff8f
equal deleted inserted replaced
6:43e37759235e 7:51a74ef9ed63
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-3314123F-205D-5E05-9041-DB9836B7812B" xml:lang="en"><title>File
       
    13 Access Example: Accessing the File System Using P.I.P.S.</title><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    14 <p>This example application shows, using a P.I.P.S. (P.I.P.S. Is POSIX on
       
    15 the Symbian platform) program, the restrictions on file access that are imposed
       
    16 by the Symbian platform Security model. </p>
       
    17 <p>It shows that programs can access their own directories, but
       
    18 cannot, without platform security capabilities not available to ordinary programs,
       
    19 access the directories of other programs, or the system binary directory <filepath>sys/bin</filepath>. </p>
       
    20 <p>This example defines an executable file with no platform security capabilities.
       
    21 The program first creates its own secure directory that it can write to and
       
    22 read from. It then attempts to use a file in a private directory of another
       
    23 program, and then in <filepath>sys/bin</filepath>, and shows that these attempts
       
    24 are denied. </p>
       
    25 <section id="GUID-820F9B58-8877-414B-A18B-B591F6D67158"><title>Download</title> <p>Click
       
    26 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>
       
    27 <section id="GUID-3EAFEC43-CFDA-4E3D-8ACD-E3AAE48BE97D"><title>Description</title> <p>The
       
    28 following sections provide more information about the steps that the example
       
    29 performs. </p> <p><b> Create a secure directory</b> </p> <p>The example creates
       
    30 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
       
    31 empty secure directory is created in <filepath>C:\private\E80000C9</filepath>,
       
    32 as 0xE80000C9 is a unique identifier for the program (as specified by the
       
    33 third UID in its project file). </p></section>
       
    34 <section id="GUID-D9F306FF-D14E-4BCC-BAE6-55804F31CA0D"> <p><b>Write and read
       
    35 a file in the private directory </b> </p> <p>The example writes and reads
       
    36 a file in the secure directory using the <xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref> and other
       
    37 file stream functions. </p> <p><b> Write and read a file in the private directory
       
    38 of another program </b> </p> <p>The example attempts to write and read a file
       
    39 in the secure directory of another program. </p> <p>The <xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref> function
       
    40 is expected to return <codeph>NULL</codeph>, indicating that access is not
       
    41 possible, as the program has insufficient platform security capabilities. </p><p><b> Write
       
    42 and read a file in the sys/bin directory</b> </p> <p>The example attempts
       
    43 to write and read a file in the system's <filepath>sys/bin</filepath> directory,
       
    44 where program binaries are stored. </p> <p>Again, the <xref href="GUID-64886CC6-072F-3542-855A-5D733FC761E8.dita"><apiname>fopen()</apiname></xref> function
       
    45 is expected to return <codeph>NULL</codeph>, indicating that access is not
       
    46 possible, as the program has insufficient platform security capabilities. </p> </section>
       
    47 <section id="GUID-EB4F71F2-D55D-43C5-B55F-F211D170056F"><title>Related 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>
       
    48 <section id="GUID-81AA0C7F-5D43-4EFB-9DD0-4A8A79922576"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian build process</xref> describes
       
    49 how to build this example application. </p> <p>The example builds an executable
       
    50 called <filepath>fileaccessexample.exe</filepath> in the standard locations. </p> <p>To
       
    51 run the example, start <filepath>fileaccessexample.exe</filepath> from the
       
    52 file system or from your IDE. After launching the executable, depending on
       
    53 the emulator you are using, you may need to navigate away from the application
       
    54 launcher or shell screen to view the console. </p> </section>
       
    55 </conbody></concept>