高级编程
文章平均质量分 71
啊飞飞飞
这个作者很懒,什么都没留下…
展开
-
linuxc 高级编程之文件操作1
题目要求:1.创建文件file1,写入字符串“abcdefghijklmn”; 2.创建文件file2,写入字符串“ABCDEFGHIJKLMN”;3.读取file1中的内容,写入file2,使file2中的字符串内容为“abcdefghijklmn ABCDEFGHIJKLMN”#include<stdio.h>#include<sys/types.h>#include&...原创 2018-05-21 09:32:55 · 2514 阅读 · 0 评论 -
Linuxc 进程间通信之匿名管道1 父子间通信
利用匿名管道实现父子进程间通信,要求1.父进程发送字符串“hello child”给子进程;2.子进程收到父进程发送的数据后,给父进程回复“hello farther”;3.父子进程通信完毕,父进程依次打印子进程的退出状态以及子进程的pid。源代码:#include <unistd.h>#include <stdio.h>#include <stdlib.h>i...原创 2018-05-25 21:00:31 · 2843 阅读 · 0 评论 -
Linuxc 进程间通信之匿名管道2 兄弟间通信
利用匿名管道实现兄弟进程间通信,要求1.兄进程发送字符串“This is elder brother ,pid is (兄进程进程号)”给弟进程;2.弟进程收到兄进程发送的数据后,给兄进程回复“This is younger brother ,pid is(第进程进程号)”;源代码:#include <unistd.h>#include <stdio.h>#include ...原创 2018-05-25 21:03:00 · 1218 阅读 · 0 评论 -
Linuxc 进程间通信之有名管道
利用有名管道文件实现进程间通信,要求1.写进程向有名管道文件写入10次“hello world”;2.读进程读取有名管道文件中的内容,并依次打印。源代码:w.c#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include <stdlib.h>#include <std...原创 2018-05-25 21:11:24 · 1199 阅读 · 0 评论 -
Linuxc高级编程之进程5
一、创建子进程一,在子进程中递归打印/home目录中的内容(可以用exec系列函数调用第一次实验中的代码完成此功能);子进程结束的时候完成以下功能: 1.打印字符串“Child process exited!” 2.打印子进程标识符,打印父进程标识符。二、创建子进程二, 打印子进程运行环境中环境变量“USER”的值,通过exec系列中的某个函数设置子进程”USER”环境变量值为“zha...原创 2018-05-22 10:55:01 · 1138 阅读 · 3 评论 -
Linuxc 之 Exec函数详解
exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件。这里的可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。 与一般情况不同,exec函数族的函数执行成功后不会返回,因为调用进程的实体,包括代码段,数据段和堆栈等都已经被新的内容取代,只留下进程ID等一些表面上的信息仍...原创 2018-05-22 10:54:00 · 2591 阅读 · 0 评论 -
Linuxc 信号的使用1 kill和signal函数
1.进程A向进程B发送SIGUSR1信号;2.进程B收到信号后,打印字符串“receive SIGUSR1”;3.要求用kill函数和signal函数实现以上功能;源代码:kill.c#include <stdio.h>#include <stdlib.h>#include <sys/wait.h>#include <sys/types.h>#inc...原创 2018-05-22 18:57:06 · 3952 阅读 · 0 评论 -
Linuxc之共享内存
1.创建共享内存,写进程每隔2秒向内存写入一次“hello world”; 如果结束写操作,则写进程写入“end”; 2.读进程从共享内存读取数据,并打印。直到读到“end”为止。源代码:write.c#include <stdio.h>#include <stdlib.h>#include <sys/ipc.h>#include <sys/shm.h&g...原创 2018-06-22 19:37:31 · 784 阅读 · 1 评论 -
Linuxc之消息队列
1.进程A向消息队列发送消息“hello,world” 2.进程B从消息队列读取消息,并打印。源代码:write.c#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include <...原创 2018-06-22 19:43:50 · 1035 阅读 · 0 评论 -
Linuxc之信号量集合
源代码:receive.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/ipc.h>#include <sys/types.h>#include <sys/sem.h>int main(){ int semid,semval1,sem...原创 2018-06-22 19:45:19 · 725 阅读 · 1 评论 -
Linuxc之网络编程讲解及例题
TCP与UDP:tcp:udp:服务器程序作用初始化服务器程序持续监听一个固定的端口收到客户的连接后建立一个socket连接与客户进行通信和信息处理接收客户通过socket连接发送来的数据,创建一个新的socket,通过socket连接与客户通信,进行相应处理,并返回处理结果通信结束后中断与客户的连接(关闭socket)客户程序作用初始化客户程序连接到某个服务器上,建立socket连接与服务器进行...原创 2018-06-22 20:56:59 · 981 阅读 · 0 评论 -
Linuxc之基于UDP通信编程
1.完成基于UDP的客户端和服务器程序编写,要求服务器采用循环方式处理客户端的数据。Server.c#include<stdio.h> #include<stdlib.h> #include<string.h> #include<errno.h> #include<sys/types.h> #include<sys/s...原创 2018-06-22 21:03:37 · 937 阅读 · 0 评论 -
Linuxc 信号的使用6 传附带的字符串变量
1.进程A向进程B发送信号,该信号的附带信息为一个字符串“Hello world”;2.进程B完成接收信号的功能,并且打印出信号名称以及随着信号一起发送过来的字符串值。注释:只有在共享内存或者同一程序的情况下才可以!!一、在用共享内存源代码:receive.c#include <stdio.h>#include <stdlib.h>#include <unistd.h...原创 2018-05-25 20:38:21 · 866 阅读 · 0 评论 -
Linuxc 信号的使用5 附带整形参数
1.进程A向进程B发送信号,该信号的附带信息为一个值为20的整数;2.进程B完成接收信号的功能,并且打印出信号名称以及随着信号一起发送过来的整形变量值。源代码:receive.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <signal.h>#include <...原创 2018-05-25 20:21:16 · 379 阅读 · 0 评论 -
linuxc 高级编程之文件操作2
1.创建新文件,该文件具有用户读写权限。2.采用dup/dup2/fcntl复制一个新的文件描述符,通过新文件描述符向文件写入“class_name”字符串;3.通过原有的文件描述符读取文件中的内容,并且打印显示;源代码:#include<string.h>#include<fcntl.h>#include<stdio.h>#include<stdl...原创 2018-05-21 09:40:12 · 1302 阅读 · 0 评论 -
linuxc 高级编程之文件操作3
题目要求: 1.输入文件名称,能够判断文件类型,判断实际用户对该文件具有哪些存取权限;2.要求打印出文件类型信息,inode节点编号,链接数目,用户id,组id,文件大小信息;3.修改文件的权限为当前用户读写,组内用户读写,组外用户无权限。源代码:#include <stdio.h>#include <sys/types.h>#include <sys/st...原创 2018-05-21 09:42:31 · 1291 阅读 · 0 评论 -
linuxc 高级编程之文件操作4
题目要求:1.新建文件,设置文件权限屏蔽字为0;2.建立该文件的硬链接文件,打印硬链接文件的inode节点号和文件大小;3.建立该文件的软链接文件,打印软链接文件的inode节点号和文件大小;打印软链接文件中的内容;4.打印源文件的inode节点号,文件大小和链接数目;5.调用unlink对源文件进行操作,打印源文件链接数目;源代码:#include <stdlib.h>#i...原创 2018-05-21 09:44:03 · 1071 阅读 · 0 评论 -
linuxc 高级编程之文件操作5
题目要求:1.新建/home/user目录;2.把当前工作路径移至/home/user目录;3.打印当前工作路径;源代码:#include <stdio.h>#include <sys/stat.h>#include <sys/types.h>#include <unistd.h>#include <fcntl.h>int main...原创 2018-05-21 09:45:33 · 827 阅读 · 0 评论 -
linuxc 高级编程之文件操作6
题目要求:编写程序完成以下功能:1.递归遍历/home目录,打印出所有文件和子目录名称及节点号。2.判断文件类型,如果是子目录,继续进行递归遍历,直到遍历完所有子目录为止源代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#inclu...原创 2018-05-21 09:46:52 · 1106 阅读 · 0 评论 -
Linuxc高级编程之文件系统大作业
假设一个学生的信息包括姓名,学号,性别,年龄,班级,籍贯六项信息,编写一个简单的学生管理系统:源代码:#include<stdlib.h>#include<stdio.h>#include<string.h>#include<sys/mman.h>#include<sys/types.h>#include<fcntl.h>#i...原创 2018-05-21 13:37:37 · 1768 阅读 · 0 评论 -
Linuxc高级编程之进程1
1.打印当前所有环境变量的值;2.添加新的环境变量NEWENV=first;3.修改环境变量NEWENV的值为second;4.打印环境变量NEWENV的值。源代码:#include <stdio.h>#include <stdlib.h>#include <unistd.h>extern char **environ;int main(int argc,cha...原创 2018-05-21 14:03:36 · 630 阅读 · 0 评论 -
Linuxc高级编程之进程2
1.打印字符串“hello world!”2.在打印字符串“hello world!”前调用三次fork,3.分析打印结果。源代码:#include <stdio.h>#include <unistd.h>#include<stdlib.h>int main(){ fork(); // 会产生两个进程分支 fork();// 前面产生的两个进程每个都...原创 2018-05-21 14:07:17 · 506 阅读 · 0 评论 -
Linuxc高级编程之进程3
1.创建子进程2.在子进程中打开文件file1,写入自己的“班级_姓名_学号”,3.父进程读取file1中的内容,并且打印显示。4.在父进程中获取已经结束的子进程的状态信息,打印该信息,并且打印结束的子进程的进程号。源代码:3.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include &l...原创 2018-05-21 14:31:12 · 793 阅读 · 0 评论 -
Linuxc高级编程之进程4
1.在父进程中定义变量n,在子进程中对变量n进行++操作;并且打印变量n的值,打印子进程pid;2.在父进程中打印变量n的值,并且打印父进程pid。3.要求分别用fork和vfork创建子进程源代码:fork.c#include<stdio.h>#include<unistd.h>#include<stdlib.h>int main(int argc,char*...原创 2018-05-22 10:39:47 · 567 阅读 · 0 评论 -
Linuxc 信号的使用4
1.进程A向进程B发送信号;2.进程B收到进程A发送的信号后,打印出发送信号进程的pid,uid以及信号值。源代码:send.c#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <signal.h>#include <unistd.h>int main(...原创 2018-05-25 20:12:00 · 397 阅读 · 0 评论 -
Linuxc之基于TCP通信聊天室
1.完成基于Tcp的客户端和服务器程序编写;要求服务器采用并发方式,至少能同时接受3个客户端发送的数据;源代码:Server.c#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/socket.h>#include<netinet/in.h>#include&...原创 2018-06-22 21:04:40 · 1780 阅读 · 3 评论