ls: Nenhum erro de arquivo ou diretório

1

Estou escrevendo uma concha básica para minha escola. Mesmo os comandos de pensamento como "pwd" ou "date" funcionam quando tento "ls" me mostra que "ls: nenhum erro de arquivo ou diretório"

O código da minha concha é abaixo:

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
int i;
char *line=(char *) malloc(1024*sizeof(char));

 while (1) {
   /* Print the command prompt */
   printf("$ ");
   fflush(stdout); /* Anagazei na trexei thn printf
   /* Read a command line */
   fgets(line, 1024, stdin);
  for(i=0;i<1024;i++){
   if(line[i]=='\n')
         {
           line[i]='
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
int i;
char *line=(char *) malloc(1024*sizeof(char));

 while (1) {
   /* Print the command prompt */
   printf("$ ");
   fflush(stdout); /* Anagazei na trexei thn printf
   /* Read a command line */
   fgets(line, 1024, stdin);
  for(i=0;i<1024;i++){
   if(line[i]=='\n')
         {
           line[i]='%pre%';
         }
  }
  //printf("%s", line);
   pid_t pid = fork(); /* Dhmiourgei paidi. antigrafo diergasias. */
     if (pid==0){

           execlp(line,line);
      }
     else waitpid(pid,0,0);

  }
}
'; } } //printf("%s", line); pid_t pid = fork(); /* Dhmiourgei paidi. antigrafo diergasias. */ if (pid==0){ execlp(line,line); } else waitpid(pid,0,0); } }
    
por Aris Kantas 19.11.2015 / 11:39

1 resposta

2

Por favor, leia atentamente a página de manual do execlp:

The list of arguments must be terminated by a NULL pointer, and, since these are variadic functions, this pointer must be cast (char *) NULL.

Usar esta linha funciona para mim:

execlp(line,line, (char*) NULL);

Seu código também deu um aviso exatamente para essa linha (usando o GCC):

a.c: In function ‘main’:
a.c:26:12: warning: not enough variable arguments to fit a sentinel [-Wformat=]
            execlp(line,line);
            ^
    
por 19.11.2015 / 11:56

Tags