linux进程变量,shell脚本变量
大家好,今天小编来为大家解答linux进程变量这个问题,shell脚本变量很多人还不知道,现在让我们一起来看看吧!
LINUX下系统编程,多进程间数据共享,即共享变量
简单的实现,没有添加同步机制,回头再添加上去,而且,我是在不同终端里面写的,你可以把两段代码,一个放到父进程,一个放到子进程...就可以了
你说的这些API,自己man一次,看看说明就知道用法了....
楼上说的对齐的问题,我没有太注意..不过,不管你要共享什么,一个sizeof看看大小,一个memcpy拷贝,你就作为数据直接拷贝到共享内存区域就OK了...另外一边再拷贝回来,用一个结构体类型的指针指向你拷贝回来的数据,不就给这部分内存再规划成一个结构体了。。
至于具体的, KEY的含义,你需要了解linux的ipc机制。
#include
#includeipc.h>
#includetypes.h>
#includeshm.h>
#define BUF_SIZE 100
#define KEY 99
int main(void)
{
int shmid;
char*shmptr;
shmid=shmget(99,BUF_SIZE,IPC_CREAT|0666);
if(shmid==-1)
{
printf("Shared Memory Created error...\n");exit(0);
}
shmptr=shmat(shmid,NULL,0);
if(shmptr==(void*)-1)
{
printf("shmat error,shmptr=%d\n",shmptr);
exit(1);
}
while(1)
{
printf("type strings into Shared Memory:");
fgets(shmptr,BUF_SIZE,stdin);
}
return 0;
}
下面这段就每隔10秒钟扫描共享内存区域的内容:
#include
#includeipc.h>
#includetypes.h>
#includeshm.h>
#define BUF_SIZE 100
#define KEY 99
int main(void)
{
int shmid;
char*shmptr;
shmid=shmget(99,BUF_SIZE,IPC_CREAT|0666);
if(shmid==-1)
{
printf("Shared Memory Created error...\n");exit(0);
}
shmptr=shmat(shmid,NULL,0);
if(shmptr==(void*)-1)
{
printf("shmat error,shmptr=%d\n",shmptr);
exit(1);
}
while(1)
{
printf("Infomation in Shared Memory:");
printf("%s\n",shmptr);
sleep(10);
}
return 0;
}
linux下各种变量的理解
在技术上,变量可分成两类:环境变量与shell变量。
1。环境变量可视为全局变量,与具体shell无关,是系统中固定存在的变量(值不一定都一样)。env命令可查看所有的环境变量,export命令可修改已经存在的环境变量,也可以将一个shell变量导出为环境变量,但是export的效力仅限于此次该登陆操作,也就是说下次登录就失效了。
另外,环境变量和内部变量应该是一回事。
2。shell变量可视为局部变量,只对当前shell有效,子进程不会继承它们。
用户变量,我的理解是用户自定义的变量,当然属于shell变量。举例,命令行输入:
$ a=123
$ echo$a
123
第一行产生一个用户变量a,并赋值为123,第二行显示变量a的值,第三行是执行结果。
本地变量,我的理解就是当前shell的所有变量,包括环境变量和shell变量(包括shell本身提供的变量和用户变量)。set命令可查看所有的本地变量。
参数变量应该就是位置变量,这个很容易理解,给个例子就明白了。新建一脚本test,内容如下:
#!/bin/bash
echo"$1"
然后执行此脚本(之前要修改test的权限为可执行):
$./test helloworld
helloworld
第一行的helloworld给出了脚本中$1的值,第二行的helloworld是执行结果。
在向脚本传递参数时,可以用此位置变量来获取参数。
他们分别是:
$0:脚本名字。此变量包含地址,可以使用basename$0获得脚本名称。
$1:第一个参数。
$2,$3,$4,$5,...依次类推。
linux查看用户进程命令linux查看用户进程
linux下怎么查看所有进程?
psaux为查看系统当前所有进程命令。;工具/原料;VMwareLinux电脑;方法/步骤;
1、打开VMware虚拟机,打开终端命令行,通过”su“命令切换到root用户下。;
2、输入“psaux“按下回车键,即可显示linux下所有的进程。;
3、输入ps-le也可以显示所有的进程,这个是按照优先级来显示。
如何查看linux进程?
linux下查看进程可以使用的命令:
1、ps命令查找与进程相关的PID号:
2、psa显示现行终端机下的所有程序,包括其他用户的程序。
3、ps-A显示所有程序。
4、psc列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
5、ps-e此参数的效果和指定"A"参数相同。
6、pse列出程序时,显示每个程序所使用的环境变量。
7、psf用ASCII字符显示树状结构,表达程序间的相互关系。
8、ps-H显示树状结构,表示程序间的相互关系。
9、ps-N显示所有的程序,除了执行ps指令终端机下的程序之外。
10、pss采用程序信号的格式显示程序状况。
11、psS列出程序时,包括已中断的子程序资料。
12、ps-t终端机编号>指定终端机编号,并列出属于该终端机的程序的状况。
linux查看某个用户有哪些进程?
"在Linux下查看用户属于哪个组有很多种方法,下面介绍常用的方法:
1.使用groups命令,后不加用户显示自己属于哪个组,如果后接用户名,则显示这个用户。#groupsroot#groupsmarkzhymarkzhy:markzhy
2.使用id命令,用法同groups命令#idmarkzhyuid=1000(markzhy)gid=1000(markzhy)组=1000(markzhy)
3.直接查看/etc/passwd文件
linux下查看进程用什么命令?
linux下查看进程可以使用的命令:
1、ps命令查找与进程相关的PID号:
2、psa显示现行终端机下的所有程序,包括其他用户的程序。
3、ps-A显示所有程序。
4、psc列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
5、ps-e此参数的效果和指定"A"参数相同。
6、pse列出程序时,显示每个程序所使用的环境变量。
7、psf用ASCII字符显示树状结构,表达程序间的相互关系。
8、ps-H显示树状结构,表示程序间的相互关系。
9、ps-N显示所有的程序,除了执行ps指令终端机下的程序之外。
10、pss采用程序信号的格式显示程序状况。
11、psS列出程序时,包括已中断的子程序资料。
12、ps-t终端机编号>指定终端机编号,并列出属于该终端机的程序的状况。
13、psu以用户为主的格式来显示程序状况。
14、psx显示所有程序,不以终端机来区分。
linux系统中如何查看进程号?
linux系统中查看进程号的方法如下
1、ps命令查找与进程相关的PID号:
2、psa显示现行终端机下的所有程序,包括其他用户的程序。
3、ps-A显示所有程序。
4、psc列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
5、ps-e此参数的效果和指定A参数相同。
6、pse列出程序时,显示每个程序所使用的环境变量。
7、psf用ASCII字符显示树状结构,表达程序间的相互关系。
8、ps-H显示树状结构,表示程序间的相互关系。
9、ps-N显示所有的程序,除了执行ps指令终端机下的程序之外。
10、pss采用程序信号的格式显示程序状况。
11、psS列出程序时,包括已中断的子程序资料。
12、ps-t终端机编号>指定终端机编号,并列出属于该终端机的进程状况。