
Linux环境编程
文章平均质量分 70
cslqm
博客地址已转到 https://cslqm.github.io/
展开
-
Linux opendir函数
opendir()头文件#include #include 函数声明DIR * opendir(const char * addr) //pathunix环境高级编程的例子#include #include #include "apue.h"int main(int arg, char *argv[]){ DIR *dp;原创 2016-11-06 20:11:32 · 1749 阅读 · 0 评论 -
Linux fcntl函数
fcntl()头文件#include #include 函数原型int fcntl(int fd, int cmd, ... /* arg */);功能fcntl函数可以改变已打开的文件的性质。若成功将依赖cmd,错误时返回-1。参数cmd = F_GETFD; //获得描述符(void)cmd = F原创 2016-11-15 21:47:23 · 1121 阅读 · 0 评论 -
Linux signal、alarm和pause函数
signal、alarm和pause函数头文件和函数原型#include typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandler_t handler);或者void (*signal(int signum, void (* handler)(int)))(int);原创 2016-11-19 16:12:05 · 1223 阅读 · 0 评论 -
Linux pthread_self和pthread_create函数
pthread_self和pthread_create函数头文件#include 函数原型pthread_t pthread_self(void);int pthread_create(pthread_t *thread tidp, const pthread_attr_t *attr, void *(*star原创 2016-11-19 21:04:21 · 5233 阅读 · 0 评论 -
Linux pthread_exit及线程清理函数
pthread_exit关于线程的终止单个线程可以通过下列三种方式退出,在不终止整个进程的情况下停止它的控制流。(1)线程只是从例程中返回,返回线程的退出码。(2)线程可以被同一进程中的其他线程取消。(3)线程调用pthread_exit。头文件#include 函数原型void pthread_exit(void *retval);原创 2016-11-20 09:11:39 · 8131 阅读 · 0 评论 -
Linux 线程同步
线程同步互斥锁在线程实际运行过程中,我们经常需要多个线程保持同步。这时可以用互斥锁来完成任务(资源竞争)。可以通过使用pthread的互斥接口保护数据,在访问共享资源前对互斥量进行加锁,在访问完成后解开互斥量上的锁。互斥量用pthread_mutex_t数据类型来表示,在使用互斥变量以前,必须先对其进行初始化,可以将其置为常量PTHREAD_MUTEX_INITIALIZER(只能用于原创 2016-11-20 11:53:28 · 623 阅读 · 0 评论 -
Linux 线程同步2
线程同步2读写锁读写锁与互斥锁类似,不过读写锁允许更高的并行性。读写锁可以有三种状态:(1) 读模式下的加锁状态;(2)写模式下的加锁状态(3)不加锁状态。这个区别与互斥锁的,因为互斥锁只有加锁和不加锁的两种状态。一次只能有一个线程的写状态的读写锁,但是可以有多个线程占有读状态的读写锁。初始化和清理#include int pthread_rwlock_init(p原创 2016-11-20 19:31:56 · 602 阅读 · 0 评论 -
Linux 线程同步3-条件变量
条件变量条件变量是线程同步的另一种同步机制。线程在改变条件状态前必须首先锁住互斥量,其他线程在获得互斥量之前不会察觉到这种改变,因为必须锁定互斥量以后才能计算条件。初始化条件变量使用之前必须首先进行初始化,pthread_cond_t数据类型代表的条件变量可以用两种方式进行初始化。对于静态分配的条件变量可以将常量PTHREAD_COND_INITIALIZER赋给条件变原创 2016-11-21 10:02:35 · 605 阅读 · 0 评论 -
Linux pipe函数
pipe头文件#include 函数原型int pipe(int pipefd[2]);#define _GNU_SOURCE int pipe2(int pipefd[2], int flags);参数参数pipefd返回两个文件描述符:pipefd[0]为读而打开,pipefd[1]写而打开。其中pipefd[1]的输出就原创 2016-11-21 13:51:48 · 951 阅读 · 0 评论 -
Linux popen和pclose函数
popen和pclose头文件#include 函数原型FILE *popen(const char *command, const char *type);int pclose(FILE *stream);参数command执向想要执行的指令,type可使用"r"代表读取,"w"代表写入。r时文件指针连接到标准输出,w时文件指针连接到标准输原创 2016-11-21 16:02:15 · 1268 阅读 · 0 评论 -
Linux 进程资源限制 getrlimit和setrlimit函数
getrlimit和setrlimit头文件#include 函数原型int getrlimit(int resource, struct rlimit *rlim);int setrlimit(int resource, const struct rlimit *rlim);功能每个进程都有一组资源限制,其中一部分可以通过getrlimit和s原创 2016-11-19 09:37:03 · 6849 阅读 · 0 评论 -
Linux getspnam、getspent、setspent和endspent函数
getspnam、getspent、setspent和endspent头文件#include 函数原型struct spwd *getspnam(const char *name);struct spwd *getspent(void);void setspent(void);void endspent(void);spwd结构str原创 2016-11-18 16:49:12 · 4164 阅读 · 0 评论 -
Linux getpw、getpwend、setpwent和endpwent函数
getpw、getpwend、setpwent和endpwent头文件1. #include #include #define _GNU_SOURCE2. #incldue #include 3. #include #include 4. #include #include 函数原型int原创 2016-11-18 14:12:36 · 1389 阅读 · 0 评论 -
Linux getpid函数
getpid()头文件#include 函数原型pid_t getpid(void)unix环境高级编程的例子#include #include #include int main(void){ printf(" Hello world from pid: %d\n", getpid()); exit(0);}功能原创 2016-11-06 20:31:25 · 1483 阅读 · 0 评论 -
Linux execlp函数
execlp()头文件#include 函数原型int execlp(const char * file,const char * arg, ...)unix环境高级编程的例子#include #include #include #include #include int main(void){ char buf[4096]; pi原创 2016-11-06 20:44:13 · 949 阅读 · 0 评论 -
Linux signal函数
signal()头文件#include 函数原型void (*signal(int signum,void(* handler)(int)))(int); 或者:typedef void(*sig_t) ( int ); 或者:sig_t signal(int signum,sig_thandler);unix环境高级编程的例子#in原创 2016-11-06 20:46:57 · 499 阅读 · 0 评论 -
Linux pathconf sysconf函数
前因 unix系统实现了很多的幻数和常量来确保软件的移植性。通过很多的标准化的工作的完善,对于这些幻数和常量都有了一定的限制。 1.不与文件或目录相关联的运行时限制(sysconf函数)。 2.与文件或目录相关联的运行时限制(pathconf和 pathconf函数)pathconf头文件#include 函数原创 2016-11-08 11:09:18 · 715 阅读 · 0 评论 -
Linux stat、fstat和lstat函数
stat头文件#include #include #include 函数原型linuxint stat(const char *path, struct stat *buf);int fstat(int fd, struct stat *buf);int lstat(const char *path, struct stat *buf);原创 2016-11-16 12:16:13 · 1092 阅读 · 0 评论 -
Linux access函数
access函数头文件#include 函数原型int access(const char * pathname, int mode);功能access函数是按实际用户ID和实际组ID进行访问权限测试的。参数access函数的mode常量,来自unix环境高级编程的例子#include #includ原创 2016-11-16 18:20:59 · 548 阅读 · 0 评论 -
Linux chmod、fchmod函数
chmod、fchmod头文件#include 函数原型int chmod(const char *path, mode_t mode);int fchmod(int fd, mode_t mode);原创 2016-11-16 20:41:04 · 2287 阅读 · 0 评论 -
Linux link、unlink、remove和rename函数
link、unlink、remove和rename函数原型#include int link(const char *existingpath, const char *newpath);int unlink(const char *pathname);#incldue int remove(const char *pathname);int ren原创 2016-11-17 09:46:24 · 2001 阅读 · 0 评论 -
Linux utime和utimes函数
utime、utimes函数原型#include #include int utime(const char *filename, const struct utimbuf *times);#include int utimes(const char *filename, const struct timeval times[2]);原创 2016-11-17 16:38:14 · 11038 阅读 · 0 评论 -
tinyhttpd-0.1.0源码分析
httpd-0.1.0源码分析httpd-0.1.0介绍TinyHTTPd是一个轻量级的http server。可以作为初级学习Linux网络编程或者C/C++入门小程序学习。此程序为开源项目。前期准备我个人理解的B/S架构是: 1.server先在相应的机器上运行起来,之后server程序检测端口是否有请求。 2.浏览器这时就可以通过网络访问已经运行起来的server。我们通过浏览器访问一个网原创 2017-06-06 11:59:10 · 900 阅读 · 0 评论