UNIX/Linux 高级编程实践
楚江课的救赎
这个作者很懒,什么都没留下…
展开
-
创建子进程来运行 ls -l 程序
创建子进程来运行 ls -l 程序#include#include#include#includeint main(void){ pid_t childpid; childpid= fork(); if(childpid==-1){ perror("Failed to fork"); return 1; } if (c原创 2013-12-30 23:07:57 · 2882 阅读 · 0 评论 -
$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件。
$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件。原创 2017-05-26 20:49:38 · 1174 阅读 · 0 评论 -
Makefile中 -I -L -l区别
原文链接 :http://blog.csdn.net/u011258240/article/details/52458195我们用gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录:例:gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -l转载 2017-05-26 20:29:21 · 720 阅读 · 0 评论 -
shell 文件遍历
shell 文件遍历发现的一个脚本遍历文件的写的蛮不错的记录下。#!/bin/bashfunction ergodic(){for file in ` ls $1`do if [ -d $1"/"$file ] #如果 file存在且是一个目录则为真 then ergodic转载 2015-09-08 01:14:14 · 564 阅读 · 0 评论 -
pthread_create 用法多线程文件拷贝。
多线程文件拷贝。#include #include #include #include #include #include #include #include "restart.h"#define MAXNAME 80#define R_FLAGS O_RDONLY#define W_FLAGS (O_WRONLY | O_CREAT)#define W_PERMS原创 2015-09-08 01:07:44 · 740 阅读 · 0 评论 -
strtok
分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL#include#includeusing namespace std;int main(){ char sentence[]="This is a sentence with 7 tokens"; cout转载 2015-05-12 23:26:46 · 705 阅读 · 0 评论 -
getopt(分析命令行参数)
getopt(分析命令行参数) 相关函数表头文件 #include定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);函数说明 getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数opt转载 2015-05-11 23:37:03 · 579 阅读 · 0 评论 -
setenv getenv
Linux命令:setenv功能说明:查询或显示环境变量。语 法:setenv [变量名称][变量值]补充说明:setenv为tsch中查询或设置环境变量的指令。NAME setenv - change or add an environment variableSYNOPSIS #include int seten转载 2015-05-11 23:54:10 · 741 阅读 · 0 评论 -
linux 让父进程等待并检查子进程的退出状态
linux 让父进程等待并检查子进程的退出状态#include#include#include#include#includeint main(int argv,char* argc[]){ pid_t pid; int n; char *message; int exit_code; printf("fork program staring\n"); pid原创 2014-01-08 23:02:09 · 1345 阅读 · 0 评论 -
unix/linux 中的time.h 函数
time.h概要: #include double difftime(time_t time1,time_t time0) //得到time1 - time2 的时间差。 #include #includevoid function_to_time(void);int main(void){time_t tstart;tstart = time(N原创 2014-01-07 15:03:27 · 884 阅读 · 0 评论 -
siglongjmp 和 sigsetjmp 用法
siglongjmp 和sigsetjmp 用法概要: #includevoid siglongjmp(sigjmp_buf env,int val);int sigsetjmp(sigjmp_buf env,int savemask);POSIX标准没有为siglongjmp定义错误。sigsetjmp被直接激活是返回0,通过siglong原创 2014-01-07 10:24:22 · 1129 阅读 · 0 评论 -
等待单个进程信号的正确方法 sigprocmask
static volatile sig_atomic_t sigreceived=0;sigset_t maskall,mastmost,maskold;int signum=SIGUSR1;sigfillset(&maskall);sigfillset(&maskmost);sigdelset(&maskmost,signum);sigprocmask(SIG_SETMASK,&ma原创 2014-01-05 23:06:55 · 717 阅读 · 0 评论 -
sigaction 信号处理
sigaction捕捉与忽略信号#include #include #include #include #include #include static volatile sig_atomic_t doneflag=0;static void setdoneflag(int signo){ doneflag=1;}int main(int argc,char *argv[]原创 2014-01-05 12:52:17 · 826 阅读 · 0 评论 -
屏蔽信号
#include #include #include #include #include #include int main(int argc,char * argv[]){ int i;sigset_t intmask; int repeatfactor; double y=0.0; if(argc != 2) { fprint原创 2014-01-04 23:25:45 · 865 阅读 · 0 评论 -
linux下fork函数创建进程
有3个进程,其中一个为父进程,其余两个是该父进程创建的子进程,其中一个子进程运行“ls -l”指令,另一个子进程在暂停5s后异常退出。父进程先用阻塞方式等待第一个进程的结束,然后用非阻塞方式等待另一个子进程的退出,待收集到第2个子进程结束的消息后,父进程就返回#include#include#include#include#includeint main(){p原创 2014-01-01 11:51:00 · 1259 阅读 · 0 评论 -
linux 进程链的创建
#include#include#include#include#include#include#define BUFSIZE 1024#define CREATE_FLAGS (O_WRONLY|O_CREAT|O_TRUNC)#define CREATE_PERMS (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)int main(int argc, cha原创 2013-12-30 22:59:42 · 865 阅读 · 0 评论 -
.SUFFIXES : .cpp .$(OBJEXT) .exe
.SUFFIXES 后缀自定义规则# From "Thinking in C++, 2nd Edition, Volume 1, # Annotated Solutions Guide" by Chuck Allison# At http://www.BruceEckel.com# (c)2001 MindView Inc. Copyright notice in Copyright.txt...原创 2018-03-02 17:06:30 · 1626 阅读 · 0 评论