コード例 #1
0
ファイル: main.c プロジェクト: frazahod/SUBGEN-NuLAB-EcoLAB-
void proc_arg()
{
  int8 number;
  int8 good_arg;

  number = 0;
  arg = 0;
  good_arg = FALSE;
  
  while (number != 13) {                     // 13 = CR = terminator
     number = fgetc(COM_A);
     if (number != 13) fputc(number, COM_A);
     if (number > 47 && number < 58) {       // ASCII 0 = 48
          number = number - 48;
          arg = arg * 10;                    // increase significance
          arg = arg + number;                // for each number
          good_arg = TRUE;
          }
     else if (number == 13 && good_arg == TRUE) {
          fputs("@OK! ", COM_A);             // got a valid number
          // *** COMMAND PROCESSOR *** //
          select_cmd();
     }
     else {
      good_arg = FALSE;
      fputs("@ARG ", COM_A);             // bad input
     }
   if (good_arg == FALSE) break;
   }
}
コード例 #2
0
ファイル: get_word_in.c プロジェクト: SleepyFanjo/42sh
int			get_word_in(t_cmd *cmd)
{
	int		fd_pipe[2];
	char	*line;

	if (pipe(fd_pipe) < 0)
		return (-1);
	if ((line = select_cmd(1, ">", NULL)) == NULL)
		return (-1);
	while (ft_strcmp(line, cmd->file_in) != 0)
	{
		write(fd_pipe[1], line, ft_strlen(line));
		write(fd_pipe[1], "\n", 1);
		free(line);
		if ((line = select_cmd(1, ">", NULL)) == NULL)
			return (-1);
	}
	free(line);
	close(fd_pipe[1]);
	cmd->fd_in = fd_pipe[0];
	return (0);
}