#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void main( void )
{
char string[] = "ffmpeg -i in.mp4 -i watermark1.png -filter_complex \"overlay=x=0:y=0\" -f mp4 out.mp4";
printf("%s\n\nTokens:\n", string);
char *szcmdline = (char *) malloc(strlen(string)+1);
if (szcmdline == NULL) {
return;
}
strcpy(szcmdline, string);
int argc = 0;
char *argv[64] = { NULL, };
char *offset = szcmdline;
char seps[] = " ,\t\n";
char *token = strtok(offset, seps);
while (token != NULL) {
argv[argc++]= token;
token[-1] = (argc == 1) ? token[-1] : '\0';
token = strtok(NULL, seps);
}
for (int i=0; i<sizeof(argv)/sizeof(argv[0]); ++i) {
if (argv[i] == NULL) {
break;
}
printf("%s\n", argv[i]);
}
int ret = -1;
if (argc == 0) {
goto Exit;
}
Exit:
if (szcmdline != NULL) {
free(szcmdline);
szcmdline = NULL;
}
}
分解命令行字符串
最新推荐文章于 2022-11-11 00:54:33 发布