I think the libc.so is shared between processes, because it is a shared library and OS is engaged for saving memory.
But, below, the maps of bash, shows r-xp and r--p rw-p attributes to libc.so which mean private memory space.
Can anybody explain this for me?
There are small bits of any shared library which get altered slightly for each program it gets loaded in, to fix code offsets. So it's loaded in 'private' mode, where any changes that get set by your program are kept in RAM specific to that program.
This lets it share all the bits it doesn't change, but keep the bits it does change to itself. It's sort of like copy-on-write.
But why the shared part of shared library don't show in the maps like
?
shared libraries are mapped with MAP_PRIVATE flag (points the 'p') for only visible from the process which calls to mmap() not other process that mapping the same file.
if any changes are needed on the shared library, then changes just affect the memory mapped region of this process by the get a copy of this page and read/write on that.
so other process are not affected for any changes.
eventually these files are mapping with 'private' type for probably despite the case of file corruption.nevertheless after the any made changes (on the copy page), modified/changed pages can use for share between processes with MAP_SHARED flag.(as the `parent-child` processes..)
gconv-modules.cache is cache data (i.e..recently libraries..) file for speedup the loading executables that provided by glibc, therefore cache datas must use as writable for any applications.because, these are mapped with MAP_SHARED (points the 's').and so last changes are visible by the other processes.
Hi guys,
i need to write a shell script that will close file descriptors from /proc/pid/fd
will calling exec 4<&- solve the problem ?
thanks in advance :) (15 Replies)
Hi all,
I'm reading <advanced bash scripting> and there is a example to kill a background process in a limited time,as shown below:
#! /bin/bash
#set -n
TIMEOUT=$1
count=0
hanging_jobs & {
while ((count < TIMEOUT));do
eval ' && ((count = TIMEOUT))'
((count++))
sleep 1... (6 Replies)
Hi,
I am trying to calculate the CPU Usage by getting the difference between the idle time reported by /proc/stat at 2 different intervals. Now the 4th entry in the first line of /proc/stat will give me the 'idle time'. But I also came across /proc/uptime that gives me 2 entries : 1st one as the... (0 Replies)
Hi,
I need to get the pid of a process and have to store the pid in a variable and i want to use this value(pid) of the variable for some process. Please can anyone tell me how to get the pid of a process and store it in a variable. please help me on this.
Thanks in advance,
Amudha (7 Replies)
hi,
i hav a query abt reading the contents of /proc/pid/maps file.is there any system apis or functions available to get the data from dat file and parse according to my need. i need name of the .so,Create date of the .so file.,Location of .so file etc.
please provide a good source.
yes i hav... (3 Replies)
1. If I use an software application(which connects to the database in the server) in my local pc, how many PID should be registered? Would there be PID for the session and another PID for socket connection?
2. I noticed (through netstat) that when I logged in using the my software application,... (1 Reply)
question: for the below program
i just printed the value for pid, child pid and parent pid
why does it give me 6 values? i assume ppid is 28086
but can't figure out why there are 5 values printed instead of just two!
can someone comment on that!
#include<stdio.h>
#define DIM 8
int... (3 Replies)
Hello..
I stink at NIS! :)
Im having a problem with NIS on solaris 2.X. / SPARC
I have some maps that are exported to all clients in the domain. Now I setup a new server and add it as a nis client to the domain. On the NIS server there is a auto_direct map that mounts /usr/local . This is... (4 Replies)