Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c++;带有系统调用的命令行 我在C++中编写shell,并且我需要一个构造函数来为我的命令行类解析ISTRAM中的一个命令,然后使用CalOrthe()和For()系统调用来动态创建ARCC和ARGV变量。我不知道如何使用系统调用来实现这一点,也没有教程提供帮助。_C++_Shell - Fatal编程技术网

c++;带有系统调用的命令行 我在C++中编写shell,并且我需要一个构造函数来为我的命令行类解析ISTRAM中的一个命令,然后使用CalOrthe()和For()系统调用来动态创建ARCC和ARGV变量。我不知道如何使用系统调用来实现这一点,也没有教程提供帮助。

c++;带有系统调用的命令行 我在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

void*calloc(size\u t num,size\u t size)

为内存中的数组分配空间为数组分配内存块 num元素数组,每个元素的大小为字节长,并初始化 它的所有位都归零

有效的结果是分配零初始化内存 (num*size)字节块

参数

num 要分配的元素数。大小 元素的大小

返回值指向函数分配的内存块的指针。 此指针的类型始终为void*,可以将其强制转换为 要取消引用所需的数据指针类型。如果 函数未能分配请求的内存块,为空 返回指针

范例

1234567891011131131415171717171812

/*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 call
exec()
;这似乎是一个家庭作业问题。不要使用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;
}