03-21-2006
If you don't have root, ask your system administrator what nfile is. Be sure to explain that you plan to exploit a possible os weakness. We sysadms just love to hear that. I decline to comment on what result would ensue if you wrap the counter. (Which I doubt is possible.)
If I execute a single open(), followed by a dup(), I now have two open files but only one file table entry. (I did say this might be cheating.) If you doubt that this represents 2 open files, try it and run lsof on your program. Or suppose I do this and then I call exit(). All opened files are closed by exit(). How many times will exit invoke close()? Or leave your limit at 256 and open a file and dup it 256 times...do you succeed? And dup() is not the only way to duplicate an fd. There is even a way to "dup" an fd from one process to another unrelated process. Also only the original dup is constrained to the lowest available fd. It is better to control the desired fd. The original dup is really still around for compatibility. On most OS's, dup is just a wrapper around fcntl(). I know that duped fd's all link to the same file table entry...that is the whole point. It circumvents the nfile limit. And I point out one more time that I did say it might be cheating.
Max pid may or may not relate strongly to max number of processes. Max processes is another kernel tunable called NPROC but there may be a limit how high it can be set. If you want to achieve the max number of times that a file can be opened, you will need to take extraordinary steps and this includes tuning the kernel to max out various limits. (Sadly, few kernels have been tuned for this particular activity...) This in turn may cause you to need a lot of physical memory. Setting records is never easy.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi,
Can anyone tell me what the maximum amount of input characters is on solaris command line? (standard ksh I think) (1 Reply)
Discussion started by: marcello
1 Replies
2. Shell Programming and Scripting
Hi,
I need to count the number of times a script is accessed from within the script. Is it possible ?
Example: I have a script called lo.sh and i execute the script for the first time, then the counter variable declared inside the lo.sh should increment by 1. For every execution the... (1 Reply)
Discussion started by: pathanjalireddy
1 Replies
3. Shell Programming and Scripting
Hi, there,
I wrote a script like this:
#!/bin/bash
#put something into a LIST
for item in $LIST
do
cat $item >> /tmp/output
done
My question is that if I have 5 items in that LIST, should it be opened and closed every time when the ">>" works? So that file will be opened and... (7 Replies)
Discussion started by: koifans
7 Replies
4. Shell Programming and Scripting
Hi Folks !!!!!!!!!!!!!!!!!!!
My Requirement is.............
i have a input file:
501,501.chan
502,502.anand
503,503.biji
504,504.raja
505,505.chan
506,506.anand
507,507.chan
and my o/p should be
chan->3
i.e. the word which occurs maximum number of times in a file should be... (5 Replies)
Discussion started by: aajan
5 Replies
5. UNIX and Linux Applications
Hi,
Can anyone help me? An input file has three lines. Each line should only be 2098 as number of characters however line 2 of the input file has more than the maximum number of characters, it exceeded up to 4098. What should I do so that could handle maximum number of characters? that it could... (1 Reply)
Discussion started by: chrysSty
1 Replies
6. UNIX for Dummies Questions & Answers
Hi,
What is the maximum number of arguments that could be passed to zsh ?
To find out that I tried a simple script.
And the maximum number of arguments that could be passed turned out to be 23394
#! /bin/zsh
arg=1
i=1
subIndex=23000
while
do
arg=$arg" "$i
i=$(($i + 1))... (9 Replies)
Discussion started by: matrixmadhan
9 Replies
7. UNIX for Dummies Questions & Answers
what is the maximum number ls can list down (6 Replies)
Discussion started by: karnan
6 Replies
8. UNIX for Advanced & Expert Users
Hello, How do i check number of files currently opening in the linux server? Your help is highly appreciated. Thank you
---------- Post updated at 02:43 PM ---------- Previous update was at 02:19 PM ----------
never mind!! I got it.
---------- Post updated at 02:44 PM ---------- Previous... (3 Replies)
Discussion started by: govindts
3 Replies
9. UNIX for Dummies Questions & Answers
I'm trying to count the number of times each word in the file exist
for example if the file has:
today I have a lot to write, but I will not go for it. The main thing is that today I am looking for a way to get each word in this file with a word count after it specifying that this word has... (4 Replies)
Discussion started by: shnkool
4 Replies
10. Shell Programming and Scripting
Hi
#Testing for file existence
if ; then
echo 'SCHOOL data is available for processing'
else
echo 'SCHOOL DATA IS NOT AVAILABLE FOR PROCESSING'
:
i wrote a script, where it begins by checking if file exists or not.
If it exists, it truncates the database... (2 Replies)
Discussion started by: rxg
2 Replies
plimit(1) User Commands plimit(1)
NAME
plimit - get or set the resource limits of running processes
SYNOPSIS
plimit [-km] pid...
plimit {-cdfnstv} soft,hard... pid...
DESCRIPTION
If one or more of the cdfnstv options is specified, plimit sets the soft (current) limit and/or the hard (maximum) limit of the indicated
resource(s) in the processes identified by the process-ID list, pid. Otherwise plimit reports the resource limits of the processes identi-
fied by the process-ID list, pid.
Only the owner of a process or the super-user is permitted either to get or to set the resource limits of a process. Only the super-user
can increase the hard limit.
OPTIONS
The following options are supported:
-k On output, show file sizes in kilobytes (1024 bytes) rather than in 512-byte blocks.
-m On output, show file and memory sizes in megabytes (1024*1024 bytes).
The remainder of the options are used to change specified resource limits. They each accept an argument of the form:
soft,hard
where soft specifies the soft (current) limit and hard specifies the hard (maximum) limit. If the hard limit is not specified, the comma
may be omitted. If the soft limit is an empty string, only the hard limit is set. Each limit is either the literal string unlimited, or a
number, with an optional scaling factor, as follows:
nk n kilobytes
nm n megabytes (minutes for CPU time)
nh n hours (for CPU time only)
mm:ss minutes and seconds (for CPU time only)
The soft limit cannot exceed the hard limit.
-c soft,hard Set core file size limits (default unit is 512-byte blocks).
-d soft,hard Set data segment (heap) size limits (default unit is kilobytes).
-f soft,hard Set file size limits (default unit is 512-byte blocks).
-n soft,hard Set file descriptor limits (no default unit).
-s soft,hard Set stack segment size limits (default unit is kilobytes).
-t soft,hard Set CPU time limits (default unit is seconds).
-v soft,hard Set virtual memory size limits (default unit is kilobytes).
OPERANDS
The following operands are supported.
pid Process ID list.
EXIT STATUS
plimit returns the exit value zero on success, non-zero on failure (such as no such process, permission denied, or invalid option).
FILES
/proc/pid/* process information and control files
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWesu |
+-----------------------------+-----------------------------+
SEE ALSO
ulimit(1), proc(1), getrlimit(2), setrlimit(2), proc(4), attributes(5),
SunOS 5.10 8 Jun 1998 plimit(1)