摘要:
通过结构体传文件 服务器代码: #include <stdio.h> #include <pthread.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> /* See NOTES */ #include <sys/s 阅读全文
摘要:
安装包:.deb dpkg -i 要安装的文件名 阅读全文
摘要:
fgets可能会将'\n'当做字符录进去 #include <stdio.h> int main(void) { char a[10] = {'\0'}; printf(">>>"); fgets(a,6,stdin); printf("%s\n",a); return 0; } 结果: 结论: 从 阅读全文
摘要:
例:如果umask的值为022,创建文件时指定的权限是775,则该文件的实际权限为 步骤: 1、022和775先变为二进制 022 >000 010 010 755 >111 101 101 2、022的二进制取反 000 010 010 >取反 >111 101 101 3、022取反后和755相 阅读全文
摘要:
共享内存: 特点: 1、共享内存是一种最为高效的进程间通信方式,进程可以直接读写内存,而不需要任何数据的拷贝 2、为了在多个进程间交换信息,内核专门留出了一块内存区,可以由需要访问的进程将其映射到自己的私有地址空间 3、进程就可以直接读写这一内存区而不需要进行数据的拷贝,从而大大提高的效率。 4、由 阅读全文
摘要:
有名管道(命名管道) 注意:管道文件存在的意义:为了让任意的进程之间完成通信(非血缘关系)管道文件存储在磁盘上,但是大小永远为0意味着数据不会被存储在管道文件中,而是每一次的读写都是往内核中的管道进行读写。 有名管道特点: 1、 有名管道可以适用于任意两个进程之间的通信 2、 有名管道可以实现双工通 阅读全文
摘要:
案例:#include <stdio.h> fork();创建的子进程继承该函数之前的所有父进程代码,以及缓冲区; exit():结束本进程返回一个int型值,WEXITSTATUS(status)用来接收返回值(只针对wait()); wait();和waitpid();的不同 wait():是个 阅读全文
摘要:
给线程一个顺序(及线程的同步) 信号量(线程同步) 头文件 #include <semaphore.h> 信号量的初始化: int sem_init(sem_t *sem, int pshared, unsigned int value); return: 0成功 -1失败 sem_t *sem: 阅读全文
摘要:
互斥锁 互斥锁的作用:// 在某一时刻,只允许一个线程访问临界资源例如:在线程1里面会对全局变量进行修改,在线程2里面也会对与线程1相同的全局变量进行修改,为了相互不影响,我们希望在线程1操作这个变量的时候线程2不能操作这个变量,或者在线程2操作这个变量的时候线程1不能操作这个变量,也就是在同一时间 阅读全文
摘要:
Linux多线程程序: 用到的函数: int pthread_create(pthread_t *tid, const pthread_attr_t *attr, void *(*func) (void *), void *arg); pthread_create用于创建一个线程,成功返回0,否则返 阅读全文