我想通过在C程序中通过execv使用“拆分”拆分文件。代码如下所示:使用execv在C中拆分文件
char *args[] = {"split", "-a1", "-b40", "dfc.conf", NULL};
execv("/usr/bin/split", args);
理论上这应该工作,但它不工作。该文件没有被分割。我也没有得到任何错误。
我在OSX 8上运行这个。 任何帮助将非常感激。
我想通过在C程序中通过execv使用“拆分”拆分文件。代码如下所示:使用execv在C中拆分文件
char *args[] = {"split", "-a1", "-b40", "dfc.conf", NULL};
execv("/usr/bin/split", args);
理论上这应该工作,但它不工作。该文件没有被分割。我也没有得到任何错误。
我在OSX 8上运行这个。 任何帮助将非常感激。
我尝试了我发生了一个任意文件运行在命令行命令已经躺在附近:
$ split -a1 -b40 ll19.c
split: too many files
$ ls x*
xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz
$ ls -l x?
-rw-r--r-- 1 jleffler staff 40 Oct 21 20:22 xa
-rw-r--r-- 1 jleffler staff 40 Oct 21 20:22 xb
-rw-r--r-- 1 jleffler staff 40 Oct 21 20:22 xc
…guess what appears here…
-rw-r--r-- 1 jleffler staff 40 Oct 21 20:22 xx
-rw-r--r-- 1 jleffler staff 40 Oct 21 20:22 xy
-rw-r--r-- 1 jleffler staff 40 Oct 21 20:22 xz
$ ls -l ll19.c
-rw-r--r-- 1 jleffler staff 4737 Aug 16 23:24 ll19.c
$
所以,一个明显的可能性是你莫名其妙地重定向错误/dev/null
或以其他方式失去了他们,并且该命令报告问题,但您没有看到它们。改为使用-a3
运行。现在,您的文件被分割成40个字节的段,如果文件大于1040个字节,那就太大了。如果您需要40行的分段,请使用-l40
而不是-b40
。
还有一种可能性:您实际上并未查找以x
开头且后缀长度为1的文件。您可以通过在要分割的文件名称后面指定前缀来控制前缀。
我想分割的文件大小约为150字节(当我在命令行中使用分割时,只创建4个文件)。 –
我可以使用系统进行拆分(“split -a1 -b40 ./dfc.conf”);执行委员不应该工作吗? –
您的代码适用于我,复制并逐字粘贴(仅更改文件名)。 – i40west
有趣!在OSX上? –