Alibabacloud.com offers a wide variety of articles about advanced programming in unix environment, easily find your advanced programming in unix environment information here online.
read mode, you need to call Pthread_rwlock_rdlock. To lock a read-write lock in write mode, you need to call Pthread_rwlock_wrlock. No matter how you lock a read-write lock, you can call Pthread_rwlock_unlock to unlock it. Similar to mutex, read-write locks can call Trylock to avoid thread clogging and to use Timedlock to set the waiting time.Barrier: A barrier is a synchronization mechanism in which users coordinate multiple processes to work in parallel. The barrier allows each thread to wait
: thread: The identifier of the waiting thread.Thread_return: User-defined pointer to store the return value of the waiting thread (not a null value);function return value: Success: 0Failed:-1#include Running result: g++ linux1.cpp-o pthread-lpthread[Email protected] linux_chen]$./pthreadThis is pthread1!This is pthread2!This is pthread2!This is pthread2!This is pthread1!This is pthread1! Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
and Group ownerThe owner of the file is identified by St_uid and the group owner is identified by St_gid4 The user ID for creating a file is set to a valid user ID for the process, the group ID may be a valid group ID for the process, or it may be a valid group ID for the directory where the file resides5 Access functions to test the actual user ID for a file#include int access (constChar* pathname,int mode);Successful return 0, failure return-1Value of ModeR_OK, W_OK, X_OK, F_OK (test file exi
In this section, the Tell_wait and Tell_parent,tell_child in the book do not figure out exactly how the synchronization mechanism is implemented. proc/tellwait1.c 8-6#include "apue.h" static void Charatatime (const char *); int main (void) { pid_t pid; if (PID = fork ()) Lib/tellwait.c#include "apue.h" static volatile sig_atomic_t Sigflag; /* Set nonzero by sig Handler */static sigset_t Newmask, Oldmask, zeromask;static void sig_usr (int signo)/* One signal Han Dler for SIGUSR1 and SIGUSR2
:
# Include "apue. H "# include
3. Function sigsuspend
# Include
Int sigsuspend (const sigset_t * sigmask );
The signal shielding character setting of a process is specified by sigmask. The process is suspended before a signal is captured. If a signal is captured, sigsuspend returns, and the new value of the process is set to the previous value.
Example:
# Include "apue. H "static void sig_int (INT); void pr_mask (const char * Str) // print the current blocked signal {sigset_t sigset; int e
Exercise:
Implement the umask command in Shell
void get_umask(int argc,char * argv[]){ if(argc == 2)//get umask { mode_t mode = umask(0000); int user = 0,group = 0,other = 0; if(mode S_IRUSR) user = user + 4; if(mode S_IWUSR) user = user + 2; if(mode S_IXUSR) user = user + 1; if(mode S_IRGRP) group = group + 4; if(mode S_IWGRP) group = group + 2; if(mode S_IXGRP)
available, the sigio signal can be sent to the process group.
O_direct directly performs file IO, and the system does not cache it as much as possible. For details, refer to the following link: http://blog.csdn.net/zhangxinrun/article/details/7635570http://laokaddk.blog.51cto.com/368606/699563/http://www.ukuug.org/events/linux2001/papers/html/AArcangeli-o_direct.html o_noatime, read the file does not change the last access time.
In addition, there are f_getown, f_setown, f_getown_ex, and so on.
Today I learned the Example 2-2 of "Advanced Programming in UNIX environment", but I am very confused.
I created a directory named sample2_2, put the source code in it, compile it, and generate the sample2_2 file. Then copy pathconf. sym and sysconf. sym to this directory.
Run the following command:
./Sample2_2 pathconf. sym
The result is as follows:
No symb
(void *roal_ptr)Other threads in the same process can be canceled through the Pthread_cancel functionvoid pthread_cancel (pthread_t tid)3 Thread SynchronizationCreate/Eliminate Mutex amountint pthread_mutex_init (pthread_mutex_t *restrict Mutex, const pthread_mutexattr_t * restrict attr); int Pthread_mutex_destroy (pthread_mutex_t *int Pthread_mutex_lock ( pthread_mutex_t *mutex); int pthread_mutex_trylock (pthread_mutex_t *mutex); int pthread_mutex_unlock (pthread_mutex_
can be scheduled state.still ready(Hang Ready): Refers to the process is swapped to the standby state of readiness, is not directly scheduled state, only if there is no active-ready state in main memory process, or the suspend-ready process has a higher priority, the system will suspend the ready state process back to main memory and converted to active ready.Active Blocking: Refers to the process already in main memory, once waiting for the event generated will enter the active ready state.Sta
UNIX Environment Advanced Programming book the error-handling functions that are often used by the sample programs.
Save these functions in a file for easy learning and use.
My_err.h
#include
My_log.h
#include
A summary of advanced programming v2cn in UNIX----Date, January 1, March 24, 2013Blog, http://blog.csdn.net/shunqiziranhao007/article/details/8712863----Netizens, master of Huashan, can take a look at reading notes if you are interested.
Http://www.cnblogs.com/biyeymyhjob/category/400821.html
----March 24, 2013----Learning apue is very painful. You may encounter something you cannot understand from time to
Section Seventh Advanced Step
1. Question: I changed the Hosts file, such as: 127.0.0.1 localhost changed to: 127.0.0.1 local does not reset the system, how to let it take effect?
Answer: # TCP Stop
# TCP Start
Suggestion: Many places want to use this machine the feedback address, the proposal does not revise!!!
2. Question: I want to modify the hostname, how to modify it?
A: If you want to modify the host name, use the uname-s hostname.
3. Que
Advanced programming in the UNIX environment Second EditionAdvanced Programming for Unix Environment Second editionDirectory:Chapter One: Basic UNIX knowledgeChapter II: UNIX Standardiz
SHOPT commands to adjust the bash shell environment:
# Catalog spelling correction
shopt-q-S Cdspell
# ensures that the display SHOPT-Q-S checkwinsize is updated each time the terminal window is resized to
open the Advanced mode matching feature
Shopt-q-S EX Tglob
# Append command history instead of overlay
shopt-s histappend
# in command history use multiline
Shopt-q-S Cmdhist
# notify
immedia
Advanced Programming in UNIX environmentSource codeAddress http://www.yendor.com/programming/unix/apue/apue.html
Bar code number owner borrowing date return date1 c1533524 advanced programming in UNIX environment (US) W. Richar
The open Server problem in "Advanced Programming in unix environment"-general Linux technology-Linux programming and kernel information. The following is a detailed description. [I = s] This post was last edited by qq278245093
I am reading "Advanced Programming in unix
After reading the third chapter of advanced programming in the Unix environment, I also typed the code myself. I also explained some IO functions, including read/write/fseek/fcntl; here is mainly a C function, which is easier to understand. The fcntl function is well explained. It can obtain and change the attributes of the opened file (read-only, write-only, etc
, size_t newsize);//newsize is the total length of the new and the oldChange the length of the previous allocation area. If there is enough new space allocated to the high level, the new space is added directly to the current position. If not,Place the current content in a different location with the new assignment and delete the original location. So should not assign pointers to him8.SETJMP and longjmpThis is a set of functions that appear in conjunction with each other.The setjmp function det
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.