Symbian3/SDK/Source/GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita
changeset 13 48780e181b38
parent 7 51a74ef9ed63
equal deleted inserted replaced
12:80ef3a206772 13:48780e181b38
     7     Nokia Corporation - initial contribution.
     7     Nokia Corporation - initial contribution.
     8 Contributors: 
     8 Contributors: 
     9 -->
     9 -->
    10 <!DOCTYPE concept
    10 <!DOCTYPE concept
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
    12 <concept id="GUID-310A8A9C-98E7-59EE-9376-8E572580190F" xml:lang="en"><title>File
    12 <concept id="GUID-310A8A9C-98E7-59EE-9376-8E572580190F" xml:lang="en"><title>File services in Symbian platform</title><shortdesc>This topic describes the common concepts of file systems
    13 services in Symbian platform</title><shortdesc>This topic describes the common concepts of file systems and files
    13 and files used by Symbian platform.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
    14 used by Symbian platform.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
    14 <p>Like other software systems, Symbian platform can store data so
    15 <p>Like other software systems, Symbian platform can store data so that it
    15 that it is kept when a handset is powered down. </p>
    16 is kept when a handset is powered down. </p>
    16 <p>On PCs, a file is kept on magnetic disk or optical media such as
    17 <p>On PCs, a file is kept on magnetic disk or optical media such as CD or
    17 CD or DVD. On older generations of personal organisers, a file was
    18 DVD. On older generations of personal organisers, a file was often kept in
    18 often kept in RAM, needing a permanent power supply, and a backup
    19 RAM, needing a permanent power supply, and a backup battery to guarantee this.
    19 battery to guarantee this. On the most recent telephone handsets,
    20 On the most recent telephone handsets, files are normally stored in flash
    20 files are normally stored in flash memory, either NOR flash or NAND
    21 memory, either NOR flash or NAND flash, and also on removable devices such
    21 flash, and also on removable devices such as MultiMediaCard (MMC),
    22 as MultiMediaCard (MMC), Secure Digital card (SD card), Memory Stick or Compact
    22 Secure Digital card (SD card), Memory Stick or Compact flash (CF). </p>
    23 flash (CF). </p>
    23 <p>There are more sophisticated services for persisting data such
    24 <p>There are more sophisticated services for persisting data such as streams,
    24 as streams, stores, central repository etc. that applications can
    25 stores, central repository etc. that applications can use, but they all rely,
    25 use, but they all rely, either directly or indirectly, on the commonly
    26 either directly or indirectly, on the commonly understood idea of the file. </p>
    26 understood idea of the file. </p>
    27 <p>The ROM on a typical handset is located in non-volatile flash memory, allowing
    27 <p>The ROM on a typical handset is located in non-volatile flash memory,
    28 it to be upgraded by the handset manufacturer after initial production. The
    28 allowing it to be upgraded by the handset manufacturer after initial
    29 location for user data is almost always flash memory (NAND or NOR), on the
    29 production. The location for user data is almost always flash memory
    30 grounds of cost, although rotating media devices capable of holding large
    30 (NAND or NOR), on the grounds of cost, although rotating media devices
    31 amounts of data are likely in future handsets. </p>
    31 capable of holding large amounts of data are likely in future handsets. </p>
    32 <ul>
    32 <ul>
    33 <li id="GUID-798E9ED1-24DF-5990-9D1E-CD043B94B722"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-DD8C4BFB-9816-5EA5-A9F2-5146C64BBC9C">Basic concepts</xref>  </p> </li>
    33 <li id="GUID-798E9ED1-24DF-5990-9D1E-CD043B94B722"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-DD8C4BFB-9816-5EA5-A9F2-5146C64BBC9C">Basic concepts</xref>  </p> </li>
    34 <li id="GUID-BBB6D4C2-4AE6-55CD-BC65-416BCF705F31"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-62387DD0-D8E4-5426-8432-B14696291AF8">Accessing file services</xref>  </p> </li>
    34 <li id="GUID-BBB6D4C2-4AE6-55CD-BC65-416BCF705F31"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-62387DD0-D8E4-5426-8432-B14696291AF8">Accessing file services</xref>  </p> </li>
    35 <li id="GUID-B6AEF9DA-60D3-5728-9C46-59EE5C98346C"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-9FF4525A-EBFD-5E9F-BD86-C6B75E5C35EF">Security issues</xref>  </p> </li>
    35 <li id="GUID-B6AEF9DA-60D3-5728-9C46-59EE5C98346C"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-9FF4525A-EBFD-5E9F-BD86-C6B75E5C35EF">Security issues</xref>  </p> </li>
    36 <li id="GUID-ACF583E3-3FAA-52FE-9A07-8172A4BBBCC9"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-849F5D6E-7911-55F8-839A-019D1BF16726">File systems and mounting a drive</xref>  </p> </li>
    36 <li id="GUID-ACF583E3-3FAA-52FE-9A07-8172A4BBBCC9"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-849F5D6E-7911-55F8-839A-019D1BF16726">File systems and mounting a drive</xref>  </p> </li>
    37 </ul>
    37 </ul>
    38 <section id="GUID-DD8C4BFB-9816-5EA5-A9F2-5146C64BBC9C"><title>Basic concepts</title> <p>Symbian
    38 <section id="GUID-DD8C4BFB-9816-5EA5-A9F2-5146C64BBC9C"><title>Basic
    39 platform uses a number of file concepts that are common to most operating
    39 concepts</title> <p>Symbian platform uses a number of file concepts
    40 systems, for example, drives and directories. </p> <p><b>Drives</b> </p> <p>Symbian
    40 that are common to most operating systems, for example, drives and
    41 platform uses the concept of the <i>drive</i>. This idea is similar to that
    41 directories. </p> <p><b>Drives</b> </p> <p>Symbian platform uses the concept of the <i>drive</i>. This idea is similar to that in other operating systems,
    42 in other operating systems, i.e. it corresponds to a logical device. A media
    42 i.e. it corresponds to a logical device. A media device such as a
    43 device such as a MultiMediaCard can be logically split into partitions, and
    43 MultiMediaCard can be logically split into partitions, and each partition
    44 each partition is treated as a separate drive. Symbian platform adopts a DOS-like
    44 is treated as a separate drive. Symbian platform adopts a DOS-like
    45 convention where each drive is identified by a single letter. This means that
    45 convention where each drive is identified by a single letter. This
    46 there can be up to 26 drives on a handset, identified by the letters <filepath>A:</filepath> through
    46 means that there can be up to 26 drives on a handset, identified by
    47 to <filepath>Z:</filepath>. In practice, there are far fewer than this, and
    47 the letters <filepath>A:</filepath> through to <filepath>Z:</filepath>. In practice, there are far fewer than this, and the number depends
    48 the number depends on the individual manufacturer's handset </p> <p>Internally,
    48 on the individual manufacturer's handset </p> <p>Internally, Symbian
    49 Symbian platform uses the idea of a drive number instead of a letter, and
    49 platform uses the idea of a drive number instead of a letter, and
    50 some legacy API items take a drive number as input, or return a drive number
    50 some legacy API items take a drive number as input, or return a drive
    51 as output. However, there are functions that can translate drive numbers to
    51 number as output. However, there are functions that can translate
    52 and from drive letters: <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-A0F50C51-A4F0-33C1-BBD4-757DEC4B7F2E"><apiname>RFs::DriveToChar()</apiname></xref> and <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-D545B868-0549-37A9-AACE-288E7C9CE8C3"><apiname>RFs::CharToDrive()</apiname></xref>. </p> <p>The
    52 drive numbers to and from drive letters: <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-A0F50C51-A4F0-33C1-BBD4-757DEC4B7F2E"><apiname>RFs::DriveToChar()</apiname></xref> and <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-D545B868-0549-37A9-AACE-288E7C9CE8C3"><apiname>RFs::CharToDrive()</apiname></xref>. </p> <p>The main ROM
    53 main ROM on a handset is always identified as the <filepath>Z:</filepath> drive.
    53 on a handset is always identified as the <filepath>Z:</filepath> drive.
    54 Other drives may be in use: sixteen of the drives <filepath>C:</filepath> to <filepath>R:</filepath> are
    54 Other drives may be in use: sixteen of the drives <filepath>C:</filepath> to <filepath>R:</filepath> are usually reserved as local drives,
    55 usually reserved as local drives, i.e. for media devices located within the
    55 i.e. for media devices located within the handset. A common convention
    56 handset. A common convention is to adopt <filepath>C:</filepath> as the main
    56 is to adopt <filepath>C:</filepath> as the main user data drive. and
    57 user data drive. and to designate <filepath>D:</filepath> or <filepath>E:</filepath> as
    57 to designate <filepath>D:</filepath> or <filepath>E:</filepath> as
    58 drives for removable media. <i>Be aware</i>, however, that this is a convention
    58 drives for removable media. <i>Be aware</i>, however, that this is
    59 that some handset manufacturers may not follow, so you are always advised
    59 a convention that some handset manufacturers may not follow, so you
    60 to check the full SDK that applies to a specific handset for guidance. Indeed,
    60 are always advised to check the full SDK that applies to a specific
    61 as a matter of principle, you should always use the <xref href="GUID-629AB2C9-BEDD-5166-8B09-F8DFF7527C03.dita">system
    61 handset for guidance. Indeed, as a matter of principle, you should
    62 drive</xref> for user data. </p> <p><b>Volume</b> </p> <p>The concept of the volume applies to removable media. As users insert
    62 always use the <xref href="GUID-629AB2C9-BEDD-5166-8B09-F8DFF7527C03.dita">system drive</xref> for user data. </p> <p><b>Volume</b> </p> <p>The concept of the volume applies to removable
    63 and remove individual devices, so different volumes are said to be mounted
    63 media. As users insert and remove individual devices, so different
    64 and demounted. For media types that can be split into partitions, each partition
    64 volumes are said to be mounted and demounted. For media types that
    65 corresponds to a separate volume. </p> <p><b>File
    65 can be split into partitions, each partition corresponds to a separate
    66 names and directory structures</b> </p> <p>Files have names, and Symbian platform
    66 volume. </p> <p><b>File names and directory structures</b> </p> <p>Files have names,
    67 uses a hierarchical directory structure in which to organize them; this is
    67 and Symbian platform uses a hierarchical directory structure in which
    68 similar to schemes adopted by other operating systems. For example: </p> <codeblock id="GUID-C4330879-E93B-5939-A810-8D4A1E5B14DB" xml:space="preserve">C:\AAA\BBB\CCC\DDD.EXT</codeblock> <p>There
    68 to organize them; this is similar to schemes adopted by other operating
    69 are four main parts to the structure: </p> <ul>
    69 systems. For example: </p> <codeblock id="GUID-C4330879-E93B-5939-A810-8D4A1E5B14DB" xml:space="preserve">C:\AAA\BBB\CCC\DDD.EXT</codeblock> <p>There are four main parts to the structure: </p> <ul>
    70 <li id="GUID-39D18587-8793-511F-B3CC-8CFA6D129F80"><p>the <i>drive</i>; this
    70 <li id="GUID-39D18587-8793-511F-B3CC-8CFA6D129F80"><p>the <i>drive</i>; this is always at the top of the hierarchy, and is represented
    71 is always at the top of the hierarchy, and is represented by a drive letter
    71 by a drive letter and a colon. </p> </li>
    72 and a colon. </p> </li>
    72 <li id="GUID-8F5F5EB0-721F-5C5B-90B6-08E2CB92BA98"><p>the <i>path</i>; this is a list of names, each name representing a level in the
    73 <li id="GUID-8F5F5EB0-721F-5C5B-90B6-08E2CB92BA98"><p>the <i>path</i>; this
    73 hierarchy. Each directory name is separated by a back slash character,
    74 is a list of names, each name representing a level in the hierarchy. Each
    74 and the last directory name is always terminated by a back slash character. </p> </li>
    75 directory name is separated by a back slash character, and the last directory
    75 <li id="GUID-BD848A50-9BEA-5E08-ACDB-92EDB9C5CA86"><p>the <i>filename</i>; this is everything after the final backslash, and before the dot
    76 name is always terminated by a back slash character. </p> </li>
    76 if there is a file extension. Symbian platform supports long file
    77 <li id="GUID-BD848A50-9BEA-5E08-ACDB-92EDB9C5CA86"><p>the <i>filename</i>;
    77 filenames. </p> </li>
    78 this is everything after the final backslash, and before the dot if there
    78 <li id="GUID-07E1D5CB-9D9B-5141-AD7B-76F839AA2FC0"><p>the <i>extension</i>, everything after the final dot. There is no restriction on the
    79 is a file extension. Symbian platform supports long file filenames. </p> </li>
    79 length of the extension; limits on length apply to the whole structure,
    80 <li id="GUID-07E1D5CB-9D9B-5141-AD7B-76F839AA2FC0"><p>the <i>extension</i>,
    80 not to any single part of it. </p> </li>
    81 everything after the final dot. There is no restriction on the length of the
    81 </ul> <p>You will find that the whole structure is sometimes referred
    82 extension; limits on length apply to the whole structure, not to any single
    82 to as the full file name or the full path name. The maximum length
    83 part of it. </p> </li>
    83 of a full file name is limited to 256 characters. Symbian platform
    84 </ul> <p>You will find that the whole structure is sometimes referred to as
    84 does not use the extension to identify the software or application
    85 the full file name or the full path name. The maximum length of a full file
    85 that can access the data. Instead, files have UIDs embedded within
    86 name is limited to 256 characters. Symbian platform does not use the extension
    86 them, and the mapping of files to applications is done through these
    87 to identify the software or application that can access the data. Instead,
    87 UIDs. For more information, see <b>Symbian^3 Tools Guide &gt; Building</b>.</p> <p>The case of full path names is always preserved, but operations
    88 files have UIDs embedded within them, and the mapping of files to applications
    88 on names are case insensitive. This means that two files that have
    89 is done through these UIDs. See <xref href="GUID-3AFA877F-41DE-5343-8BC2-C0FB894A062C.dita">Application
    89 the same name but differ only in case are considered to refer to the
    90 registration information</xref>. </p> <p>The case of full path names is always
    90 same file. </p> <p>Full file names are normally manipulated programmatically.
    91 preserved, but operations on names are case insensitive. This means that two
    91 Extracting drive names, filenames, file extensions, and changing the
    92 files that have the same name but differ only in case are considered to refer
    92 names of a directory structure are typical activities. Symbian platform
    93 to the same file. </p> <p>Full file names are normally manipulated programmatically.
    93 provides you with the <xref href="GUID-E79A3B03-F8CB-37DB-A2A8-1C6C4E4D739A.dita"><apiname>TParse</apiname></xref>, <xref href="GUID-A6268E58-68EC-3041-93FD-5368CD230947.dita"><apiname>TParsePtr</apiname></xref>, and <xref href="GUID-C65BCDAB-0476-3EAC-9BFC-37243AE43FE9.dita"><apiname>TParsePtrC</apiname></xref> classes to help you do this manipulation. </p> <p>See <xref href="GUID-ECF9E432-EA93-5284-B0E6-A1211289CBD8.dita">parsing
    94 Extracting drive names, filenames, file extensions, and changing the names
       
    95 of a directory structure are typical activities. Symbian platform provides
       
    96 you with the <xref href="GUID-E79A3B03-F8CB-37DB-A2A8-1C6C4E4D739A.dita"><apiname>TParse</apiname></xref>, <xref href="GUID-A6268E58-68EC-3041-93FD-5368CD230947.dita"><apiname>TParsePtr</apiname></xref>, and <xref href="GUID-C65BCDAB-0476-3EAC-9BFC-37243AE43FE9.dita"><apiname>TParsePtrC</apiname></xref> classes
       
    97 to help you do this manipulation. </p> <p>See <xref href="GUID-ECF9E432-EA93-5284-B0E6-A1211289CBD8.dita">parsing
       
    98 paths and filenames</xref> . </p> </section>
    94 paths and filenames</xref> . </p> </section>
    99 <section id="GUID-62387DD0-D8E4-5426-8432-B14696291AF8"><title>Accessing file
    95 <section id="GUID-62387DD0-D8E4-5426-8432-B14696291AF8"><title>Accessing
   100 services</title> <p>On Symbian platform, file services are a common resource.
    96 file services</title> <p>On Symbian platform, file services are a
   101 Like other common or shared resources on Symbian platform, file services are
    97 common resource. Like other common or shared resources on Symbian
   102 handled by a server - the file server. Applications and other software that
    98 platform, file services are handled by a server - the file server.
   103 require access to files, directories and drives are clients of the file server,
    99 Applications and other software that require access to files, directories
   104 and send file-related requests using the <xref href="GUID-198DCED1-F429-5C95-A51D-53AE416687E8.dita">file
   100 and drives are clients of the file server, and send file-related requests
   105 server client-side API</xref>. </p> <p>The file server is multithreaded, which
   101 using the <xref href="GUID-198DCED1-F429-5C95-A51D-53AE416687E8.dita">file
   106 allows each logical drive to be accessed concurrently. More than one request
   102 server client-side API</xref>. </p> <p>The file server is multithreaded,
   107 can be issued for the same drive, but these requests are handled sequentially.
   103 which allows each logical drive to be accessed concurrently. More
   108 For example, a request to read or write data to a MultiMediaCard can be handled
   104 than one request can be issued for the same drive, but these requests
   109 at the same time as a request to read or write data to the main user drive. </p> <p>The
   105 are handled sequentially. For example, a request to read or write
   110 file server has a main thread that initially handles all requests. Short requests,
   106 data to a MultiMediaCard can be handled at the same time as a request
   111 such as those that require access to the ROM drive, and those that do not
   107 to read or write data to the main user drive. </p> <p>The file server
   112 require access to any media, run in the file server. </p> <p>The services
   108 has a main thread that initially handles all requests. Short requests,
   113 provided by the file server can be divided into two types: </p> <ul>
   109 such as those that require access to the ROM drive, and those that
   114 <li id="GUID-12F7606D-835D-5948-B0F0-EBACC5F6E569"><p>those that give you
   110 do not require access to any media, run in the file server. </p> <p>The services provided by the file server can be divided into two
   115 access to individual files, directories and drives using the <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref>, <xref href="GUID-12AE154F-7741-38C0-ADFE-9784FCF5E516.dita"><apiname>RDir</apiname></xref> and <xref href="GUID-9D7E765B-6872-3EB9-9D5B-1503FA466EC1.dita"><apiname>RFormat</apiname></xref> classes. </p> <p>See also <xref href="GUID-30B2AF3F-E120-5D47-AAA2-529555625B55.dita">How to
   111 types: </p> <ul>
   116 use sessions, files, and directories</xref>. </p> </li>
   112 <li id="GUID-12F7606D-835D-5948-B0F0-EBACC5F6E569"><p>those that give
   117 <li id="GUID-9E40CF33-C35E-52CE-80B9-8A019F34F305"><p>those that allow you
   113 you access to individual files, directories and drives using the <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref>, <xref href="GUID-12AE154F-7741-38C0-ADFE-9784FCF5E516.dita"><apiname>RDir</apiname></xref> and <xref href="GUID-9D7E765B-6872-3EB9-9D5B-1503FA466EC1.dita"><apiname>RFormat</apiname></xref> classes. </p> <p>See also <xref href="GUID-30B2AF3F-E120-5D47-AAA2-529555625B55.dita">How to use sessions,
   118 to do higher level longer running operations such as moving, copying and deleting
   114 files, and directories</xref>. </p> </li>
   119 files, using the <xref href="GUID-82CEC14F-1479-3922-846A-9FCDB6465EF7.dita"><apiname>CFileMan</apiname></xref> class, scanning directory trees
   115 <li id="GUID-9E40CF33-C35E-52CE-80B9-8A019F34F305"><p>those that allow
   120 using the <xref href="GUID-C657AF2D-1183-3CD2-ACAF-3B0B00FC91BB.dita"><apiname>CDirScan</apiname></xref> class, and tracking the progress of
   116 you to do higher level longer running operations such as moving, copying
   121 these operations using the <xref href="GUID-E608485F-B3E3-3310-A80E-169D8B9D2234.dita"><apiname>MFileManObserver</apiname></xref> class. </p> <p>See
   117 and deleting files, using the <xref href="GUID-82CEC14F-1479-3922-846A-9FCDB6465EF7.dita"><apiname>CFileMan</apiname></xref> class, scanning
   122 also <xref href="GUID-ACF6C0A2-87ED-55B3-B22A-9B331D9940AC.dita">File management
   118 directory trees using the <xref href="GUID-C657AF2D-1183-3CD2-ACAF-3B0B00FC91BB.dita"><apiname>CDirScan</apiname></xref> class, and tracking
   123 and searching</xref>  </p> </li>
   119 the progress of these operations using the <xref href="GUID-E608485F-B3E3-3310-A80E-169D8B9D2234.dita"><apiname>MFileManObserver</apiname></xref> class. </p> <p>See also <xref href="GUID-ACF6C0A2-87ED-55B3-B22A-9B331D9940AC.dita">File management and
   124 </ul> <p>Like most other servers, the client API allows you to make file requests
   120 searching</xref>.  </p> </li>
   125 synchronously or asynchronously. </p> <p>See also <xref href="GUID-6047DB3F-DC92-51DF-9EEB-00E79E890B54.dita">client-server</xref>. </p> </section>
   121 </ul> <p>Like most other servers, the client API allows you to make
   126 <section id="GUID-9FF4525A-EBFD-5E9F-BD86-C6B75E5C35EF"><title>Security issues</title> <p>Security
   122 file requests synchronously or asynchronously. </p> <p>See also <xref href="GUID-6047DB3F-DC92-51DF-9EEB-00E79E890B54.dita">client-server</xref>. </p> </section>
   127 considerations restrict the parts of a handset's directory structure that
   123 <section id="GUID-9FF4525A-EBFD-5E9F-BD86-C6B75E5C35EF"><title>Security
   128 an application is allowed to access. The concept is referred to as <i>data
   124 issues</title> <p>Security considerations restrict the parts of a
   129 caging</i>. </p> <p>There are a number of principles involved: </p> <ul>
   125 handset's directory structure that an application is allowed to access.
   130 <li id="GUID-21674EE5-40A3-5F71-9973-C089FD838585"><p>The fundamental principle
   126 The concept is referred to as <i>data caging</i>. </p> <p>There are
   131 is the separation of executable code from data. Executable code can only reside
   127 a number of principles involved: </p> <ul>
   132 in the <filepath>/sys/bin/</filepath> directory. Executables cannot be loaded
   128 <li id="GUID-21674EE5-40A3-5F71-9973-C089FD838585"><p>The fundamental
   133 from any location other than <filepath>/sys/bin/</filepath>. Unless an application
   129 principle is the separation of executable code from data. Executable
   134 has the appropriate system capabilities, the <filepath>/sys/</filepath> directory
   130 code can only reside in the <filepath>/sys/bin/</filepath> directory.
   135 is not visible to that application. System capabilities are a discrete set
   131 Executables cannot be loaded from any location other than <filepath>/sys/bin/</filepath>. Unless an application has the appropriate system
   136 of 'permissions' that give access to various sensitive system services, and
   132 capabilities, the <filepath>/sys/</filepath> directory is not visible
   137 which can only be granted to applications, if justified, through the <xref href="https://www.symbiansigned.com/app/page" scope="external">Symbian Signed</xref> scheme. </p> </li>
   133 to that application. System capabilities are a discrete set of 'permissions'
   138 <li id="GUID-4A1854CE-25CB-5630-A27C-73931D937567"><p>Applications have their
   134 that give access to various sensitive system services, and which can
   139 own private directory, under which they are free to create further directory
   135 only be granted to applications, if justified, through the <xref href="https://www.symbiansigned.com/app/page" scope="external">Symbian
   140 structures and files, and to write to those files. This is the directory structure <filepath>/private/&lt;app_SID&gt;/</filepath>. <i>&lt;app_SID&gt;</i> is known as a secure identifier and, in general, is used when verifying
   136 Signed</xref> scheme. </p> </li>
   141 an executable's rights of access to system resources. Here, it is used to
   137 <li id="GUID-4A1854CE-25CB-5630-A27C-73931D937567"><p>Applications
   142 form the path name for the executable's private directory. The secure identifier
   138 have their own private directory, under which they are free to create
   143 is a UID which is allocated to a developer through the <xref href="https://www.symbiansigned.com/app/page" scope="external">Symbian Signed</xref> scheme, and is guaranteed to be unique
   139 further directory structures and files, and to write to those files.
   144 within the handset on which the application is installed. The UID is coded
   140 This is the directory structure <filepath>/private/&lt;app_SID&gt;/</filepath>. <i>&lt;app_SID&gt;</i> is known as a secure identifier and, in general,
   145 into the <filepath>mmp</filepath> file(s) that define the application's source
   141 is used when verifying an executable's rights of access to system
   146 files, link requirements, and general characteristics. </p> <p>Other applications
   142 resources. Here, it is used to form the path name for the executable's
       
   143 private directory. The secure identifier is a UID which is allocated
       
   144 to a developer through the <xref href="https://www.symbiansigned.com/app/page" scope="external">Symbian
       
   145 Signed</xref> scheme, and is guaranteed to be unique within the handset
       
   146 on which the application is installed. The UID is coded into the <filepath>mmp</filepath> file(s) that define the application's source files,
       
   147 link requirements, and general characteristics. </p> <p>Other applications
   147 have no right of access to an application's private directory. </p> </li>
   148 have no right of access to an application's private directory. </p> </li>
   148 <li id="GUID-2814D086-A660-5294-9952-E6D66243B652"><p>There is a directory <filepath>/resource/</filepath> to
   149 <li id="GUID-2814D086-A660-5294-9952-E6D66243B652"><p>There is a directory <filepath>/resource/</filepath> to which all applications have read access,
   149 which all applications have read access, but no write access. The purpose
   150 but no write access. The purpose of this directory is to conatin common
   150 of this directory is to conatin common read-only files. </p> </li>
   151 read-only files. </p> </li>
   151 <li id="GUID-FC6EE81A-59FA-5AC5-8EC4-3034597F8829"><p>All other directories
   152 <li id="GUID-FC6EE81A-59FA-5AC5-8EC4-3034597F8829"><p>All other directories
   152 are accessible for both reading and writing. This allows the use of standard
   153 are accessible for both reading and writing. This allows the use of
   153 file system hierarchies that may be available on removable media. </p> </li>
   154 standard file system hierarchies that may be available on removable
       
   155 media. </p> </li>
   154 <li id="GUID-95121831-873B-5E79-B07C-410858FC9779"><p>The above principles
   156 <li id="GUID-95121831-873B-5E79-B07C-410858FC9779"><p>The above principles
   155 apply regardless of the drive. </p> </li>
   157 apply regardless of the drive. </p> </li>
   156 </ul> <p>It is possible to pass an open file to another process, or between
   158 </ul> <p>It is possible to pass an open file to another process, or
   157 a client and server, so that the target can access the file without knowing
   159 between a client and server, so that the target can access the file
   158 the full path name. The only information that is passed to the target is the
   160 without knowing the full path name. The only information that is passed
   159 filename and extension. </p> </section>
   161 to the target is the filename and extension. </p> </section>
   160 <section id="GUID-849F5D6E-7911-55F8-839A-019D1BF16726"><title>File systems
   162 <section id="GUID-849F5D6E-7911-55F8-839A-019D1BF16726"><title>File
   161 and mounting a drive</title> <p>The varying characteristics of media types
   163 systems and mounting a drive</title> <p>The varying characteristics
   162 can mean that different media types require different formats. A common format
   164 of media types can mean that different media types require different
   163 is VFAT, and typically, this is used for removable media to maintain compatibility
   165 formats. A common format is VFAT, and typically, this is used for
   164 with other systems. This also means that long file names are supported. </p> <p>In
   166 removable media to maintain compatibility with other systems. This
   165 Symbian platform, format schemes are implemented by what are called file systems;
   167 also means that long file names are supported. </p> <p>In Symbian
   166 they are constructed as plugins to the file server. This means that the file
   168 platform, format schemes are implemented by what are called file systems;
   167 server itself is independent of the format scheme, and also means that a phone
   169 they are constructed as plugins to the file server. This means that
   168 manufacturer is free to add new file systems to a handset. The ROM is an exception
   170 the file server itself is independent of the format scheme, and also
   169 - it has its own file system built into the main file server code. </p> <p>A
   171 means that a phone manufacturer is free to add new file systems to
   170 file system must be associated with a drive before the drive can be used.
   172 a handset. The ROM is an exception - it has its own file system built
   171 This is known as mounting the drive, and is typically done at system boot
   173 into the main file server code. </p> <p>A file system must be associated
   172 time. </p> <p>In practice, an application does not need to concern itself
   174 with a drive before the drive can be used. This is known as mounting
   173 with the format scheme. </p> </section>
   175 the drive, and is typically done at system boot time. </p> <p>In practice,
       
   176 an application does not need to concern itself with the format scheme. </p> </section>
   174 </conbody></concept>
   177 </conbody></concept>