c++;带有系统调用的命令行 我在C++中编写shell,并且我需要一个构造函数来为我的命令行类解析ISTRAM中的一个命令,然后使用CalOrthe()和For()系统调用来动态创建ARCC和ARGV变量。我不知道如何使用系统调用来实现这一点,也没有教程提供帮助。
这里有一个与您要求的非常类似的示例。我在这里找到的: 函数calloc void*calloc(size\u t num,size\u t size) 为内存中的数组分配空间为数组分配内存块 num元素数组,每个元素的大小为字节长,并初始化 它的所有位都归零 有效的结果是分配零初始化内存 (num*size)字节块 参数 num 要分配的元素数。大小 元素的大小 返回值指向函数分配的内存块的指针。 此指针的类型始终为void*,可以将其强制转换为 要取消引用所需的数据指针类型。如果 函数未能分配请求的内存块,为空 返回指针 范例 1234567891011131131415171717171812c++;带有系统调用的命令行 我在C++中编写shell,并且我需要一个构造函数来为我的命令行类解析ISTRAM中的一个命令,然后使用CalOrthe()和For()系统调用来动态创建ARCC和ARGV变量。我不知道如何使用系统调用来实现这一点,也没有教程提供帮助。,c++,shell,C++,Shell,这里有一个与您要求的非常类似的示例。我在这里找到的: 函数calloc void*calloc(size\u t num,size\u t size) 为内存中的数组分配空间为数组分配内存块 num元素数组,每个元素的大小为字节长,并初始化 它的所有位都归零 有效的结果是分配零初始化内存 (num*size)字节块 参数 num 要分配的元素数。大小 元素的大小 返回值指向函数分配的内存块的指针。 此指针的类型始终为void*,可以将其强制转换为 要取消引用所需的数据指针类型。如果 函数未能分配
/*calloc示例*/
#包括
#包括
int main()
{
inti,n;
int*pData;
printf(“要输入的数字量:”);
scanf(“%d”、&i);
pData=(int*)calloc(i,sizeof(int));
如果(pData==NULL)退出(1);
对于(n=0)你能稍微扩展你的问题吗?你不知道如何调用CaloC++和Field,或者你不知道如何在命令行中使用istRAMAM来阅读?operators@fumalaga:如果您必须使用系统调用,则必须告诉我们它适用于哪个操作系统@wallyk他将calloc
和free
称为系统调用(它们实际上是C标准库的一部分)当然,他以后需要系统调用来创建新的进程来运行生成的命令。@JamesKanze:重新阅读这个问题后,我发现你是正确的。他面前的问题是创建argv[]
ready to callexec()
;这似乎是一个家庭作业问题。不要使用cplusplus.com,而是使用cppreference.com。@Griwes有什么区别?Quality.cplusplus.com经常被称为“关于c++最差的网站之一”。人们经常这么说;我在这两个网站上都看到错误或遗漏。
/* calloc example */
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int i,n;
int * pData;
printf ("Amount of numbers to be entered: ");
scanf ("%d",&i);
pData = (int*) calloc (i,sizeof(int));
if (pData==NULL) exit (1);
for (n=0;n<i;n++)
{
printf ("Enter number #%d: ",n);
scanf ("%d",&pData[n]);
}
printf ("You have entered: ");
for (n=0;n<i;n++) printf ("%d ",pData[n]);
free (pData);
return 0;
}