Add file creation logic

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3542 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2011-04-30 17:29:40 +00:00
parent f9bdeb9f65
commit fe089ab1a3

View File

@ -79,12 +79,17 @@
# define CONFIG_EXAMPLES_NXFFS_MAXNAME 128 # define CONFIG_EXAMPLES_NXFFS_MAXNAME 128
#endif #endif
#if CONFIG_EXAMPLES_NXFFS_MAXNAME > 255
# undef CONFIG_EXAMPLES_NXFFS_MAXNAME
# define CONFIG_EXAMPLES_NXFFS_MAXNAME 255
#endif
#ifndef CONFIG_EXAMPLES_NXFFS_MAXFILE #ifndef CONFIG_EXAMPLES_NXFFS_MAXFILE
# define CONFIG_EXAMPLES_NXFFS_MAXFILE 8192 # define CONFIG_EXAMPLES_NXFFS_MAXFILE 8192
#endif #endif
#ifndef CONFIG_EXAMPLES_NXFFS_GULP #ifndef CONFIG_EXAMPLES_NXFFS_MAXIO
# define CONFIG_EXAMPLES_NXFFS_GULP 347 # define CONFIG_EXAMPLES_NXFFS_MAXIO 347
#endif #endif
#ifndef CONFIG_EXAMPLES_NXFFS_MAXOPEN #ifndef CONFIG_EXAMPLES_NXFFS_MAXOPEN
@ -248,12 +253,13 @@ static inline int nxffs_wrfile(void)
for (offset = 0; offset < file->len; ) for (offset = 0; offset < file->len; )
{ {
size_t maxio = (rand() % CONFIG_EXAMPLES_NXFFS_MAXIO) + 1;
size_t nbytestowrite = file->len - offset; size_t nbytestowrite = file->len - offset;
ssize_t nbyteswritten; ssize_t nbyteswritten;
if (nbytestowrite > CONFIG_EXAMPLES_NXFFS_GULP) if (nbytestowrite > maxio)
{ {
nbytestowrite = CONFIG_EXAMPLES_NXFFS_GULP; nbytestowrite = maxio;
} }
nbyteswritten = write(fd, &g_fileimage[offset], nbytestowrite); nbyteswritten = write(fd, &g_fileimage[offset], nbytestowrite);
@ -270,7 +276,7 @@ static inline int nxffs_wrfile(void)
} }
else if (nbyteswritten != nbytestowrite) else if (nbyteswritten != nbytestowrite)
{ {
fprintf(stderr, "Partial write: %d\n"); fprintf(stderr, "Partial write:\n");
fprintf(stderr, " File name: %s\n", file->name); fprintf(stderr, " File name: %s\n", file->name);
fprintf(stderr, " File size: %d\n", file->len); fprintf(stderr, " File size: %d\n", file->len);
fprintf(stderr, " Write offset: %d\n", offset); fprintf(stderr, " Write offset: %d\n", offset);