Download Latest Version lolfs-0.11.tar.gz (37.6 kB)
Email in envelope

Get an email when there's a new version of lolfs

Home
Name Modified Size InfoDownloads / Week
source 2016-04-19
README 2016-04-19 5.2 kB
Totals: 2 Items   5.2 kB 0


	Liblolfs - Little Object List (LOL) filesystem - by Niko Kiiskinen
                                      

        Please see file 'INSTALL' for detailed installation instructions



Manifesto


     I enjoy (re-)inventing wheels, here is another excr.. example.

     Lolfs is a container file. It means that it is a file (stored
     in your computer somewhere) which has other files inside it.

     Once you create a lol container file (using the included
     'mkfs.lolfs' utility for example), you can then use the
     lolfs API explained in <lolfs.h> to create, modify and delete
     files in this container.

     The installation package also includes a couple of programs
     which you may use to do some of the common file operations:



    mkfs.lolfs program:
    -------------------

                "mkfs.lolfs" creates a container file.


                It takes 3 parameters:
                - block size: the number of bytes a "block" has
                              (this is a number which you can choose
                               freely. Try to choose it as average file size
                               to gain best performance).

                - number of blocks: the number of data blocks. This depends
                                    on how big container you want.
                                    Try like 50000 first and try it

                - filename: this is just the name which you like to use
                            as the name of the container file. Ex:
                            'mycontainer'

                 Use like: "mkfs.lolfs  1000  50000  mycontainer"

                           ( This creates a container file 'mycontainer' which
                             has 1000 * 50000 bytes of storage capacity ).


                 ( In Linux, lolfs may be used directly with removable storage,
                   without warranty of course!

                   So, you may actually insert an SDHC card to your Linux
                   and create a lol storage directly there. In that case the
                   "filename" parameter is just the name of the device,
                   for example "mkfs.lolfs 512 4000000 /dev/sdb"
                   You MUST know what you are doing then, and of course
                   you must be root to do that - or anything similar.
                   You have been warned! :)



    lol_ls program:
    ---------------

                lol_ls lists the files inside your container file.

                Use it like "lol_ls mycontainer", where "mycontainer"
                is the name of the container file

    lol_cp program:
    ---------------

                lol_cp copies files to (and from) your container file.

                 If you want to copy a file /home/you/readme.txt to your
                 container file 'mycontainer', use:
                 lol_cp /home/you/readme.txt mycontainer

                 If you want to copy a file which is inside the container
                 back to somewhere, use:

                 lol_cp mycontainer:/readme.txt /some/directory

                 NOTE: When accessing files inside your container, you must
                       separate the path with ':' like in above example.


   lol_rm program:
    ---------------

                lol_rm   deletes a file from your container file.
                         Use like: "lol_rm mycontainer:/readme.txt"

                NOTE:    Note also here (this is common feature when accessing
                         files inside a container), that you must separate
                         the file with a ':' from it's container.


   lol_df program:
   ---------------

                lol_df   Shows how much space is used in container file.
                         Use like: "lol_df mycontainer"


   lol_cat program:
   ----------------

                lol_cat  Prints the contents of a file (inside a container)
                         to standard output.
                         Use like: "lol_cat mycontainer:/readme.txt"
                          Or like: "lol_cat mycontainer:/somefile > somefile.bak"
      


lolfs API:


     The API functions in <lolfs.h> are as much identical to their standard C
     counterparts.
     DIFFERENCES ARE:

     - they are all prefixed with "lol_", for example fopen <-> lol_fopen
       fread <-> lol_fread, stat <-> lol_stat, etc..

     - when you lol_fopen a file (or otherwise manipulate files inside
       a container file, you must separate the filesystem path from the
       file inside a container with a ':'

     Example: Create a file "test.txt" inside container called 'mycontainer'.


  #include <string.h>
  #include <lolfs.h>

  int main() {

             lol_FILE *fp;
             char text[] = "Hello World!\n";

             fp = lol_fopen("mycontainer:/test.txt", "w");

             lol_fwrite((char *)text, strlen(text), 1, fp);
             lol_fclose(fp);
             return 0;

  }
      

  How to compile and link a lolfs enabled program:

  gcc program.c -o program -llolfs


  
Questions, Bug reports, etc..

     Niko Kiiskinen
     nkiiskin {at} yahoo com
     http://swagfile.com

Source: README, updated 2016-04-19