linux进程控制编程-exit()和_exit()函数区别
linux进程控制编程,通过程序分析-exit()和_exit()函数区别
代码分析
程序分析
//exit() _exit function
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
//#include <stdlib.h>
//void exit(int status);
//#include <unistd.h>
//void _exit(int status);
int main()
{
if ((fork()) == 0 )
{
printf("This is child process Using exit\n");
printf(" Print content in child buff ");
exit(0);
}
else
{
sleep(1);
printf("This is father pro ...
linux进程控制编程-守护进程的编写
linux进程控制编程,介绍守护进程编写的步骤
代码分析
程序分析
//daemon.c
//1.创建子进程,父进程退出
//2.在子进程中创建新会话
//3.改变当前目录为根目录
//4.重设文件权限掩码
//5.关闭文件描述符
#include <unistd.h>
#include <sys/types.h>
#include <wait.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
pid_t pid;
int i, fd;
char *str = "This is my first daemon process\n";
pid = fork(); //step1 创建子进程
if (pid < 0)
{
printf ...
linux文件读写编程-freopen()函数
linux I/O编程,用freopen实现重定向,将一个文件设置为标准输入,另外一个设置为标准输出
代码分析
程序分析
//main.c
#include <stdio.h>
#define FILE_IN "in_file.txt"
#define FILE_OUT "out_file.txt"
int main()
{
int a, b;
FILE *fp1, *fp2;
fp1 = freopen(FILE_IN, "r", stdin);
//将in_file.txt设置为标准输入之后,下面的scanf就会从中读
fp2 = freopen(FILE_OUT, "w", stdout);
//将out_file.txt设置为标准输出之后,下面的printf就会打印到其中
if ((fp1 == NULL) || (fp2 == NULL))
{
fprintf(stderr,"Files open error!\n&qu ...
linux文件读写编程-标准IO和底层IO对比
linux I/O编程,两个程序都是copy功能,一个用标准IO实现,一个用底层IO实现,比较之
代码分析
标准IO
/* standard_io.c */
#include <stdlib.h>
#include <stdio.h>
#define BUFFER_SIZE 1024 /* 每次读写缓存大小 */
#define SRC_FILE_NAME "src_file" /* 源文件名 */
#define DEST_FILE_NAME "dest_file" /* 目标文件名文件名 */
#define OFFSET 10240 /* 拷贝的数据大小 */
int main()
{
FILE *src_file, *dest_file;
unsigned char buff[BUFFER_SIZE];
int real_read_len;
/* 以只读方式打开源文件 */
src_file = fopen(SRC_FILE_NAME, "r") ...
linux文件读写编程-select()函数
linux I/O编程,用select()函数和无名管道机制实现
代码分析
程序分析
//select.c
#include "select.h"
/*
* comment:
* pipe is used between two processes on the same computer.
* */
#define TIMES 50
int main()
{
int pipefds[2];
int i;
//int pipe(int fd[2])
if( -1 == pipe( pipefds))
{
printf( "Error when create pipes\n");
}
else
{
pid_t pid = fork();
//pid_t fork(void)
if( 0 == pid)
{// child
printf( "child running\n");
close( pipef ...
Linux信号机制的例子
linux 信号机制的例子,分析程序,了解 kill() 函数的使用,信号的捕获相关问题
代码分析
程序分析
void (*signal(int signum, void (*handler)(int)))(int);
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
void my_func(int sign_no)
{
if (sign_no == SIGINT)
{
printf("I have get SIGINT\n");
//该信号在用户键入INTR字符(通常是ctrl+c)时发出
}
else if (sign_no == SIGQUIT)
{
printf("I have get SIGQUIT\n") ...
linux文件读写编程-fcntl()函数
linux I/O编程,用fcntl()函数实现生产者消费者的程序
代码分析
程序分析
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>
int lock_set(int fd,int type)
{
struct flock lock;
lock.l_whence= SEEK_SET; //设置当前位置为文件开头
lock.l_start = 0; //加锁区域的偏移量,与l_whence一起决定加锁区域的位置
lock.l_len = 0; //加锁区域的长度
//以上三行的作用是对整个文件加锁
lock.l_type = type; //锁类型
lock.l_pid = -1;
fcn ...
三态门与双向数据总线
摘要:对三态门作分析,并用VHDL实现,主要应用在双向数据总线读写中,给出详细设计和测试代码
一·介绍
在设计CPU时如果是单总线结构,那不可避免的要用到双向总线,此时数据的读写会是一个令人头疼的问题,在此,并不详细地剖析其原理,而是尽量用大家能够理解的方式解读。
以下题为例
设计一个8位位宽的双向数据总线,由使能端s控制总线数据流向,当s-00,C的数据赋给A;当s=01,A的值赋给C;s为其他值时,B的数据赋给C。用VHDL编程设计该双向数据总线,并观察的仿真波形结果验证双向总线的功能。
二·分析
这里直接给出代码并分析
process(S,B,A,C)
BEGIN
IF S="00" THEN
C<="ZZZZZZZZ";A<=C;
ELSIF S="01" THEN
A<="ZZZZZZZZ";C<=A;
ELSE
C<=B;
END IF;
END process;
需要注意的是,这里图中的in,out都是针 ...
先进先出存储器(FIFO)设计
摘要:同步FIFO设计,包括所有代码,分析,以及仿真结果
FIFO介绍
要求:存入数据按顺序排放,存储器全满时给出信号并拒绝继续存入,全空时也给出信号并拒绝读出;读出时按先进先出原则;存储数据一旦读出就从存储器中消失。
特点
先进先出( First In First Out,FIFO)与普通存储器的区别是没有外部读写地址线,其数据地址由内部读写指针自动加减1完成。
FIFO通常利用双口RAM和读写地址产生模块来实现其功能。
读写指针
FIFO存储器是一个环形结构,读地址计数器和写地址计数器分别代表下一次读数据操作时的读指针和下一次写数据操作时的写指针。
这种环形结构的FIFO的特点是:数据满时,FIFO内的数据个数为总存储单元个数减1,即必须至少有一个数据为空,这是因为,如果在环形结构的FIFO没有留有一个空数据,则无法区分FIFO是空还是满这两种状态。当FIFO复位后,读地址计数器和写地址计数器复位,此时FIFO为空。
当wr_ptr=rd_ptr时,FIFO数据为空;
当wr_ptr-rd_ptr=M-l或rd_ptr-wr_ptr=l时,FIFO ...
兔言兔语——1
一些乱写的东西,作个留念
有感
潇湘月下清猿哀,
幽谷乔旁孤雀还。
风雪柴门笑尔呆,
腌臜蓑笠未敢摘。
君莫乖,君莫怪,
阳关杯酒愿卿来,此非明镜台。
负剑南,负剑难!
蓝桥墙柱刻君怀,偏要惹尘埃。
泊者
一声欸乃,
一句叨扰。
从此几经断桥,
只觉桥上身影遥迢,
再不敢唤声你早,
离去草草。
中秋
风落无痕,叶落伤神。
拾一粒未开的海棠,且珍藏。
念一段深埋的过往,再遗忘。
以灯为月,再不缺。
以树作殿,影仍变。
未敢登楼,看青枝挂亭轩。
只得翘首,听天际演云卷。
微风凋零眷恋,
细雨凝固时间。
春花落成秋,秋思酿作酒。
且饮一樽窗前,
道是谁还在唱着明月啊共婵娟?
独我听不见。
江城子
离人巧语何人忆,笑东篱,叹蝶泣,误入秦楼,方知西亭戏,城外烟雨湿行痕,自伤身,还忆曾。
斯人折梅寄檐下,目蒹葭,别赤霞,不堪华表,信步入萧森,楼上明月浸笛声,三尺绳,泪妆成。
kevin
I decorate today’s garden,
painting the leaves fallen.
Can you remember K ...