标签:写入 选择 参数 冲突 系统调用 除了 需要 wangka pre
下面代码中()局部性最差
1 #define N 1000
2 3
typedef struct {
4 int vel[3];
5 int acc[3];
6 } point;
7 8
point p[N];
A
1 void clear1(point *p, int n)
2 {
3 int i, j;
4 5
for (i = 0; i < n; i++) {
6 for (j = 0; j < 3; j++)
7 p[i].vel[j] = 0;
8 for (j = 0; j < 3; j++)
9 p[i].acc[j] = 0;
10 }
11 }
B
1 void clear2(point *p, int n)
2 {
3 int i, j;
4 5
for (i = 0; i < n; i++) {
6 for (j = 0; j < 3; j++) {
7 p[i].vel[j] = 0;
8 p[i].acc[j] = 0;
9 }
10 }
11 }
C
1 void clear3(point *p, int n)
2 {
3 int i, j;
4 5
for (j = 0; j < 3; j++) {
6 for (i = 0; i < n; i++)
7 p[i].vel[j] = 0;
8 for (i = 0; i < n; i++)
9 p[i].acc[j] = 0;
10 }
11 }
D. 不确定
共享内存:允许两个或多个进程共享一定的存储区,因为不需要拷贝数据,所以这是最快的一种IPC。
#include <sys/ipc.h>
#include <sys/shm.h>
* int shmget(key_t key,size_t size,int shmflg);
* void *shmat(int shmid,const void *shmaddr,int shmflg);//shmaddr通常为NULL,由系统选择共享内存附加的地址;shmflg可以为SHM_RDONLY
* int shmdt(const void *shmaddr); //shmaddr是shmat()函数的返回值
运行结果如下:
在两个程序之间传递数据的最简单的方法是使用popen()和pclose()函数:
#include <stdio.h>
FILE *popen(const char *command, const char *open_mode);
int pclose(FILE *stream);
pipe()函数:
#include <unistd.h>
int pipe(int pipefd[2]);
pipe()函数通常用来实现父子进程之间的通信。
命名管道:FIFO
#include <sys/types.h>
#include <sys/stat.h>
int mkfifo(const char *fifo_name, mode_t mode);
前面两种管道只能用在相关的程序之间,使用命名管道可以解决这个问题。在使用open()打开FIFO时,mode中不能包含O_RDWR。mode最常用的是O_RDONLY,O_WRONLY与O_NONBLOCK的组合。O_NONBLOCK影响了read()和write()在FIFO上的执行方式。
2017-2018-1 20155318 《信息安全系统设计基础》第十周课上测试及课下作业
标签:写入 选择 参数 冲突 系统调用 除了 需要 wangka pre
原文地址:http://www.cnblogs.com/lxy1997/p/7900023.html