10-07-2004
Quote:
Originally posted by Driver
> If you have the memory, you might want to read the whole file into memory, manipulate it there and then dump the results back to disk.
Well, if one really wants to modify it in memory, one could also mmap() the file. Using MAP_SHARED you won't need any memory to back the file, as it is already done by the disk. memmove() to move data to make room/overwrite areas of the file and ftruncate() to grow/shrink the file. But I do not recommend this because it likely does not buy anything and may well be slower, requires more effort and decreases the degree of portability.
Yes, I agree, which is why I say "could". A lot depends on machine specs and the problem itself. The problem described is quite simple, but a mail merge application, indexing or sorting application will require due consideration to performance.
My point to the OP was quite simple and old fashioned: memory is faster than disk!
( I hope that is still true these days
)
Peace
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I'm trying to insert a single character at position 11 in everyline of a file.
My input file looks like this:
456781 ~Y~12345
456782 ~N~12300
and I want my output to look like this:
45678~1 ~Y~12345
45678~2 ~N~12300
I tried the following awk code, but it's not working:... (3 Replies)
Discussion started by: mmarino
3 Replies
2. Shell Programming and Scripting
how do u insert text into a specific place in a file, say the middle for example, without changing the name for that file (1 Reply)
Discussion started by: mopimp
1 Replies
3. Shell Programming and Scripting
Script 1
Pre-requisites
Create a file with x amount of lines in it, the content of your choice.
Write a script that takes two arguments. The first being a line of text, the second being your newly created file. The script should take the first argument and insert it into the very top (the... (3 Replies)
Discussion started by: ali hussain
3 Replies
4. Shell Programming and Scripting
I wrote a script like
#!/bin/bash
echo $1 > temp
cat $2 >> temp
mv temp $2
now I have problem appending the above script(only using bash shell) so that it now inserts the first argument into the middle of the file.
I have tried using $(('wc -l < file' / 2 ))
but invain so could any one... (4 Replies)
Discussion started by: boris
4 Replies
5. Shell Programming and Scripting
how to insert one file into another file not by concatenating as usual done.
file1
A B
C D
E F
G H
I J
K L
file2
23455
33444
33334
33345
Output shud be
23455
A B
C D (4 Replies)
Discussion started by: cdfd123
4 Replies
6. Shell Programming and Scripting
I want to insert a text into the middle of a file (3 Replies)
Discussion started by: relle
3 Replies
7. UNIX for Dummies Questions & Answers
Hey guys, how do we take a line of text as an argument from a user and then insert it in the middle of a file irrespective of the number of lines in the file. I am trying to do this without SED or AWK. Inserting it in the beginning and at the end is easy, but i am trying to accomplish inserting... (6 Replies)
Discussion started by: kartikkumar84@g
6 Replies
8. Shell Programming and Scripting
I have tried
sed '/6/a text_to_inserted' file > newfile
but this inserts test_to_insert at random places in file and i want it in specific location, which is line 6.
can anyone help.... (6 Replies)
Discussion started by: phenom
6 Replies
9. Shell Programming and Scripting
Hi,
So far i've made a script that takes two argument, 1st is the contents and the 2nd is the named file. At the moment i've managed to insert new contents as a new line at the top, but i want to ask how can you insert contents in the middle of the file?
Source Code
#!/bin/bash
#Write... (3 Replies)
Discussion started by: zen10
3 Replies
10. Shell Programming and Scripting
All,
I have a file which contains two entry with spaces (either one or more than one space). ex.
/tmp/scripts/sql CUST_YR_END_INI.sql
/tmp/scripts/sql CUST_WK_END_INI.sql
/tmp/scripts/sql CUST_MTH_END_INI.sql
/tmp/scripts/sql CUST_YR_END_INC.sql
now I want to... (11 Replies)
Discussion started by: anshu ranjan
11 Replies
sync2(2) System Calls Manual sync2(2)
NAME
sync2 - Flush file system metadata and data from memory buffers to disk
SYNOPSIS
#include <sys/mount.h>
int sync2 (
unsigned int POLICY ,
char *path);
STANDARDS
Interfaces documented on this reference page conform to industry standards as follows:
sync2(): XSH5.0
Refer to the standards(5) reference page for more information about industry standards and associated tags.
PARAMETERS
Flush the file system memory buffers to disk. The argument is one of the following: Flush all memory buffers. Specifying this flag causes
the function to behave the same as the sync function. See sync(2). Flush all memory buffers except those under smooth sync control. The
name of a file system or fileset. Specify the optional path parameter when you want to have the POLICY act only on that file system
instead of all file systems. Specify a NULL argument when you want to have the POLICY act on all file systems.
DESCRIPTION
The sync2 function causes file system data to be flushed (written) to disk. Which memory buffers are flushed to disk depends on the POLICY
argument.
If the policy is SYNC_SYNCPOLICY, all memory buffers are flushed to disk. If the policy is SYNC_SMOOTHSYNCPOLICY, all memory buffers
except those under smooth sync control are flushed to disk.
To which file systems the POLICY argument applies depends on the path argument. To apply the policy to one file system, name it in the
path argument. To apply the policy to all file systems, specify the path argument as NULL.
The writing, although scheduled, is not necessarily complete upon return from the sync2 function.
RELATED INFORMATION
Functions: sync(2)
Commands: sync(8)
Standards: standards(5) delim off
sync2(2)