split.c

来自「linux下自动mount各种即插即用设备的一个小程序源码 文件包含内容: 」· C语言 代码 · 共 63 行

C
63
字号
#include "split.h"/*! * splitline is a destructive argument parser, much like a very primitive * form of a shell parser. it supports quotes for embedded spaces and * literal quotes with the backslash escape. */char *splitnext(char **pos) {	char *a, *d, *s;	s = *pos;	while (*s == ' ' || *s == '\t')		s++;	a = d = s;	//printf("tokenbegin:%s\\0\n", a);	while (*s && *s != ' ' && *s != '\t') {		if (*s == '"') {			s++;			while (*s && *s != '"') {				if (*s == '\\')					s++;				if (*s)					*(d++) = *(s++);			}			if (*s == '"')				s++;		} else {			if (*s == '\\')				s++;			*(d++) = *(s++);		}	}	while (*s == ' ' || *s == '\t')		s++;	*d = 0;	*pos = s;	//  printf("token:%s\\0\n", a);	return a;}int splitline(char **argv, int max, char *line) {	char *s;	int i = 0;	s = line;	while(*s && i < max) {		argv[i] = splitnext(&s);		i++;	}	if(!argv[0])		return(0);	return i;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?