
Linux-GCC
文章平均质量分 50
cuixuange
https://github.com/cuixuage
展开
-
Linux GCC 进程创建
简要说明fork创建父子进程、orphan孤儿进程、defunct僵尸进程;wait、waitpid使用;gdaemon创建守护进程;亲缘关系的进程使用无名管道;1.fork进程创建system、fork、execl、open均可以创建进程,这里主要介绍fork方式。 fork创建父子进程查看父进程、子进程的堆栈区情况。 写时复制:copy on write 子进程对于变量的修改不影响父进程的堆原创 2017-07-01 15:16:28 · 755 阅读 · 0 评论 -
CUDA Basic编程
1.向量点积 cuda dot product Question 1: Dot product Dot product is a reduction from vectors to a scalar. Please implement the kernel of dot product in CUDA. The host code is provided. Your work will b...原创 2018-06-26 16:26:48 · 300 阅读 · 0 评论 -
UCAS计算机网络实验
中科院计算机网络实验 交换机 NAT地址转换 应用层的socket通信 实现对数据结构mac_port_map的所有操作,以及数据包的转发和广播操作 实现函数:;实现对于内网外网IP_PORT hash表NAT_mapping_entry操作,从而实现数据包转发(更换IP+PORT,重新计算checksum);分布式字符统计 socket通信原创 2017-11-20 11:28:06 · 1835 阅读 · 3 评论 -
Linux C 网络编程 仿照网盘的功能
Linux C 网络编程 仿照网盘的功能 代码: gitbub 代码,欢迎下载测试使用概述启动 server-> make;./server ../conf/serverconf.ini client-> make; ./client 127.0.0.1 2000 默认 server ip为主机ip,port=2000,子进程个数=5 server端 进程池响应clie原创 2017-07-17 10:53:27 · 1881 阅读 · 1 评论 -
Linux C 网络编程
经过一段时间,总结下简单练习 tcp 、 udp 通信tcp 传输层协议通信//tcp 协议实现 server client端的传输层信息通信 //server = socket描述符 bind绑定ip+端口号 listen打开端口 accpet阻塞等待client连接 //client = socket描述符 connect连接serverip+端口号 //server client 使原创 2017-07-17 10:44:10 · 450 阅读 · 0 评论 -
Linux C 信号、线程同步、线程互斥锁、线程条件变量
这一周学习 信号处理,线程pthread的创建、同步、阻塞、激发的情形信号量的处理函数#include "func.h" void sig(int signum) { // 同一个信号量最多执行两遍 printf("before sleep,I am signal %d\n",signum); sleep(3); printf("after sleep,I am signal原创 2017-07-17 10:27:19 · 588 阅读 · 0 评论 -
Linux 管道、mmap文件映射
1.管道实现I/O多路转接模型 仔细理解select函数 从文件描述符集合选择可用的 例如: stdio 0 以及read 管道fifo中的数据这两个文件描述符中选取可以使用的,并加以判断FD_ISSET哪个fd描述符可用就使用哪一个。实现双人聊天 mkfifo 1.fifo 2.fifo创建两个通信管道read.c : #include "func.h" // read 1.pipe读原创 2017-06-24 16:56:40 · 391 阅读 · 0 评论 -
Linux 文件操作
我们都知道linux不以后缀名识别文件,通过inode标识文件,通过文件描述符fd来操作文件。linux 内核维护一个已打开文件的记录表。有两个例子作为文件信息的学习总结。深度优先遍历目录下所有文件;通过stat函数模仿ls -l的效果展示再写一点文件操作的知识点1.int fd=open (filename,flags,mode_t) //flags一般写O_RDWR|O_CREAT|O_TR原创 2017-06-24 16:23:11 · 266 阅读 · 0 评论 -
Linux GCC编译、gdb调试、makefile、动态链接库的创建
学习了一段时间的Linux 系统编程来总结总结,GCC的一些相关知识。比如GCC编译,gdb调试器的使用,makefile的编写等等知识点。这些都是最最基础的知识了,hh。还有出现segment fault段错误是gdb的用处就很大了,gdb core能直接定位到段错误发生位置。1.GCC编译1.预处理编译汇编链接 预处理: gcc -E main.c 得到文件main.i,是将define的宏定原创 2017-06-24 15:45:56 · 946 阅读 · 0 评论 -
Linux 文件权限
通过学习一段时间的linux系统编程,把文件权限、stat文件状态信息、umask掩码等等知识简单总结一下原创 2017-06-24 11:38:48 · 480 阅读 · 0 评论 -
Linux GCC 信号量
简述信号量的创建、初始化、定义原子操作结构体、pv使用。 1.信号量创建 类似于共享内存的创建方式 int semid = semget(key,size,flag) 例如: int semid = semget(1000,1,IPC_CREAT|0600); 2.信号量的初始化 类似于解锁操作,先把锁释放 int ret = semctl(semid,0,SETVAL,1); 3.原创 2017-07-01 16:08:36 · 542 阅读 · 0 评论 -
Linux GCC共享内存
共享内存、私有共享内存创建、链接、使用、断开连接、删除。共享内存中更多是地址指针操作,与strcpy、memcpy等等结合比较紧密。 在工作中更多是在创建共享内存shared memory的key是人工赋予的,也可以采用ftok函数将某一个文件重新计算出一个key_t值。1.共享内存创建int shmid=shmget(key_t key ,size_t,int flag); 最小的分配的共享内原创 2017-07-01 15:36:24 · 522 阅读 · 0 评论 -
指针和引用的区别
指针和引用的区别? 指针会新构建一个变量,而引用则不会 e.g. int* p; void func(int* p1){}; 在指针传递中,实参是p,形参是p1这是两个不同的变量。 1.可以通过修改p1指向的变量,来改变p指向的变量 2.修改地址p1的值,不会改变地址p的值,导致*p1不会改变 #include<iostream> using namespace std; class ...原创 2019-02-03 21:30:55 · 189 阅读 · 0 评论