亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? vmcp.c

?? 控制語(yǔ)音Modem的程序
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*----------------------------------------------------------------------*//* vmcp		Voice Modem Control Program.				*//*		A little program to send commands to the modem		*//*		with special features for voice modems.			*//*									*//* Version	0.6.1		Jul 14 1999				*//*									*//* Author:	Niccolo Rigacci <fd131@cleveland.freenet.edu>		*//*									*//* Copyright (C) 1996-1999 Niccolo Rigacci				*//*									*//* This program is free software; you can redistribute it and/or modify	*//* it under the terms of the GNU General Public License as published by	*//* the Free Software Foundation; either version 2 of the License, or	*//* (at your option) any later version.					*//*									*//* This program is distributed in the hope that it will be useful,	*//* but WITHOUT ANY WARRANTY; without even the implied warranty of	*//* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the	*//* GNU General Public License for more details.				*//* 									*//* You should have received a copy of the GNU General Public License	*//* along with this program; if not, write to the Free Software		*//* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.		*//*----------------------------------------------------------------------*/#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <fcntl.h>#include <getopt.h>#include <signal.h>#include <string.h>#include <linux/termios.h>#include <unistd.h>#include <sys/file.h>#include <sys/stat.h>#include <sys/types.h>#include <sys/time.h> /*----------------------------------------------------------------------*//* Macro definitions/*----------------------------------------------------------------------*//* DLE			Escape char for voice mode.			*//* BREAK_KEY		Break key for -k switch.			*//* MAX_LEN_FNAME	Max len for filename strings.			*//* TEMP_DIR		Where to put the lock file.			*//* DEVS_DIR		Where modem devices are.			*//* DFLT_DEV		Default modem device.				*//* DEV_NULL		Black-hole file.				*//* HDB_LCK_FORMAT	Format string for printing PID in HDB lockfile.	*//* HDB_LCK_LEN		Len of HDB lockfile.				*/#define TRUE		1#define FALSE		0#define DLE		16#define BREAK_KEY	27#define MAX_LEN_FNAME	255#define TEMP_DIR	"/tmp/"#define DEVS_DIR	"/dev/"#define DFLT_DEV	"ttyS0"#define DEV_NULL	"/dev/null"#define HDB_LCK_FORMAT	"%10d\n"#define HDB_LCK_LEN	11#define EXIT_OK		0#define EXIT_TIMEOUT	100#define EXIT_KEYPRESS	101#define ERR_MEMORY	150#define ERR_SYNTAX	151#define ERR_DEVICE	152#define ERR_OPEN	153#define ERR_WRITE	154#define ERR_CLOSE	155#define ERR_LOCK	156#define ERR_IOCTL	157#define ERR_LCKFILE	158#define ERR_BAUDRATE	159#define ERR_SIGNAL	200/*----------------------------------------------------------------------*//* Function prototypes/*----------------------------------------------------------------------*/int out_chr(int c);int out_esc(int c);void no_response(int i);void end_on_signal(int i);void fatal(int exit_code);char *strdupcvt(char *str);void safeprint(char *msg, char *str);void port_reset(int fd);/*----------------------------------------------------------------------*//* Global variables/*----------------------------------------------------------------------*/struct termios ts;			/* Saved stdin line settings	*/int debug = FALSE;			/* Be verbose			*/int timeout = 5;			/* Seconds to wait		*/int break_on_key = FALSE;		/* Return on keypress		*/int escaping_dle = FALSE;		/* Handle escaping of DLE	*/int make_lock_file = FALSE;		/* Must create lock file	*/int made_lock_file = FALSE;		/* Lock file created		*/int changed_std_input = FALSE;		/* Std input settings changed	*/int quit_on_eof = FALSE;		/* Return on end of input file	*/int skip_out_string = FALSE;		/* Do not output the -W string	*/FILE *inp_fp;				/* Input file pointer		*/FILE *out_fp;				/* Output file pointer		*/FILE *esc_fp;				/* Escape file pointer		*/unsigned char *lckfname = NULL;		/* Name of the lock file	*/unsigned char *command = NULL;		/* Command to send		*/unsigned char *out_string = NULL;	/* String to wait		*/unsigned char *esc_string = NULL;	/* Escape chars to wait		*/int out_len;				/* Len of out_string		*/int out_pos = 0;			/* Index to scan out_string	*/int ok_exit_code;			/* Exit code if OK (0 - 99)	*/long baud_rate;				/* Baud rate of serial line	*//*----------------------------------------------------------------------*//* Main program/*----------------------------------------------------------------------*/int main(int argc, char **argv)   {   int i, c, fd, opt;   int eof_inp = TRUE;   int finito = FALSE;   int reset_port = FALSE;   int previous_dle = FALSE;   int sent_one_dle = FALSE;   unsigned char pid_buf[HDB_LCK_LEN + 1];   unsigned char filename[MAX_LEN_FNAME + 1];   unsigned char *inp_file, *out_file, *esc_file;   unsigned char *device;   unsigned char buf;   struct termios new_ts;   fd_set rfds;   pid_t pid;   /* Set default values for some strings. */   inp_file = out_file = esc_file = DEV_NULL;   device = DFLT_DEV;   /* Process command line arguments */   while ((opt = getopt(argc, argv, "c:d:eghi:kl:o:qs:t:w:W:x:z:")) != -1)      {      switch (opt)         {         case 'e':            escaping_dle = TRUE; break;         case 'g':            debug = TRUE; break;         case 'k':            break_on_key = TRUE; break;         case 'q':            quit_on_eof = TRUE; break;         case 'c':            if ((command = strdupcvt(optarg)) == NULL) fatal(ERR_MEMORY);            break;         case 'd':            if ((device = strdup(optarg)) == NULL) fatal(ERR_MEMORY);            break;         case 'h':            fprintf(stderr, "Voice Modem Control Program\n");            fprintf(stderr, "Usage: %s [OPTION]...\n", argv[0]);            fprintf(stderr, "\t-c command\n\t-d device\n\t-e\n\t-g\n\t-h\n");            fprintf(stderr, "\t-i in_file\n\t-k\n\t-l lockfile\n");            fprintf(stderr, "\t-o out_file\n\t-q\n\t-s esc_file\n");            fprintf(stderr, "\t-t sec\n\t-w waitstring\n\t-W skipstring\n");            fprintf(stderr, "\t-x esc_string\n\t-z baudrate\n");            exit(0);            break;         case 'i':            if ((inp_file = strdup(optarg)) == NULL) fatal(ERR_MEMORY);            eof_inp = FALSE;            break;         case 'l':            if ((lckfname = strdup(optarg)) == NULL) fatal(ERR_MEMORY);            make_lock_file = TRUE; break;         case 'o':            if ((out_file = strdup(optarg)) == NULL) fatal(ERR_MEMORY);            break;         case 's':            if ((esc_file = strdup(optarg)) == NULL) fatal(ERR_MEMORY);            break;         case 't':            timeout = atoi(optarg); break;         case 'W':            skip_out_string = TRUE;         case 'w':            if ((out_string = strdupcvt(optarg)) == NULL) fatal(ERR_MEMORY);            out_len = strlen(out_string);            break;         case 'x':            if ((esc_string = strdup(optarg)) == NULL) fatal(ERR_MEMORY);            break;         case 'z':            baud_rate = atol(optarg);            reset_port = TRUE;            break;         default:            fprintf(stderr, "Try `vmcp -h' for help.\n");            fatal(ERR_SYNTAX);            break;         }      }   /* Set standard input line settings in non-canonical mode:	*/   /* no line buffering, no echo, no wait.			*/   if (break_on_key)      {      /* Get standard input (file descriptor 0) line settings. */      if (ioctl(0, TCGETS, &ts) != 0) fatal(ERR_IOCTL);      new_ts = ts;      new_ts.c_lflag &= ~ICANON;      new_ts.c_lflag &= ~ECHO;      new_ts.c_cc[VTIME] = 0;      new_ts.c_cc[VMIN] = 0;      if (ioctl(0, TCSETS, &new_ts) != 0) fatal(ERR_IOCTL);      changed_std_input = TRUE;      }   /* Set the timeout alarm. */   if (timeout != 0)      {      signal(SIGALRM, no_response);      alarm(timeout);      }   /* Set some signal handling functions. */   signal(SIGHUP, end_on_signal);   signal(SIGINT, end_on_signal);   signal(SIGQUIT, end_on_signal);   signal(SIGTERM, end_on_signal);   /* Open communication file device. */   sprintf(filename, "%s%s", DEVS_DIR, device);   if ((fd = open(filename, O_RDWR | O_NONBLOCK)) == -1) fatal(ERR_DEVICE);   if (flock(fd, LOCK_EX | LOCK_NB) != 0) fatal(ERR_LOCK);   if (reset_port)      {      if (debug) fprintf(stderr, "Resetting the serial line\n");      port_reset(fd);      }   /* Create lock file if required. Use HDB lockfile format:	*/   /* ten byte ASCII decimal number, with a trailing newline.	*/   if (make_lock_file)      {      pid = getpid();      sprintf(pid_buf, HDB_LCK_FORMAT, pid);      sprintf(filename, "%sTMP..%d", TEMP_DIR, pid);      /* Create a temp lock file and write PID to it. */      if ((i = creat(filename, 0644)) == -1) fatal(ERR_LCKFILE);      if (write(i, pid_buf, HDB_LCK_LEN) != HDB_LCK_LEN) fatal(ERR_LCKFILE);      if (close(i) != 0) fatal(ERR_LCKFILE);      /* Change name to the lock file. */      if (link(filename, lckfname) == 0) made_lock_file = TRUE;      unlink (filename);      if (!made_lock_file) fatal(ERR_LCKFILE);      }   /* Write command to communication file device. */   /* NOTE: no check is made for EAGAIN error, we */   /* suppose command string to be small enough   */   /* to fit entirely in the output buffer.       */   if (command != NULL)      {      /* Just paranoia: US-Robotic requires a pause	*/      /* of 1 ms before "AT" commands, we do 2 ms.	*/      if (strncmp(command, "AT", 2) == 0 || strncmp(command, "at", 2) == 0)         {         struct timeval tv;         tv.tv_sec = 0;         tv.tv_usec = 2000;         select(0, NULL, NULL, NULL, &tv);         }      if (debug) safeprint("Sending", command);      i = strlen(command);      if (write(fd, command, i) != i) fatal(ERR_WRITE);      }   else      if (debug && (out_string != NULL))         if (skip_out_string)            safeprint("Skipping", out_string);         else            safeprint("Waiting for", out_string);   /* Open input, output and escape files. */   if ((inp_fp = fopen(inp_file, "rb")) == NULL) fatal(ERR_OPEN);   if ((out_fp = fopen(out_file, "wb")) == NULL) fatal(ERR_OPEN);   if ((esc_fp = fopen(esc_file, "wb")) == NULL) fatal(ERR_OPEN);   /* Main loop to send input file to communication device's input */   /* and to capture output to output file. If escaping of DLE     */   /* char is enabled, escaped chars are sent to escape file.      */   while (!finito)      {      /* If "-i file" has more characters to send, do one. */      if (!eof_inp)         {         /* Write a char from "-i file" to device, escape DLE if required. */         if ((c = fgetc(inp_fp)) == EOF)            {            eof_inp = TRUE;            finito = quit_on_eof;            }         else            {            buf = (unsigned char)c;            if (write(fd, &buf, 1) == 1)               { /* No error, check for DLE escaping. */               if (buf == DLE && escaping_dle && !sent_one_dle)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区四区视频| 亚洲成av人片一区二区| 日韩欧美久久一区| 8v天堂国产在线一区二区| 欧美日韩高清一区| 91精品国产一区二区人妖| 4438x亚洲最大成人网| 欧美日韩二区三区| 欧美一级日韩不卡播放免费| 欧美一二区视频| 欧美成人免费网站| 国产丝袜美腿一区二区三区| 国产日本一区二区| 亚洲视频综合在线| 一区二区欧美国产| 日本不卡一区二区三区| 麻豆成人av在线| 粉嫩av一区二区三区在线播放| 丁香天五香天堂综合| 91蜜桃网址入口| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美视频第二页| 欧美tickling网站挠脚心| 久久精品男人天堂av| ...中文天堂在线一区| 亚洲一区免费在线观看| 毛片av一区二区| 处破女av一区二区| 日本乱人伦一区| 欧美一区二区三区视频在线 | 欧美高清视频不卡网| 91精品国产日韩91久久久久久| 精品女同一区二区| 亚洲欧洲综合另类在线| 日韩av在线免费观看不卡| 国产精品91xxx| 欧美私模裸体表演在线观看| 日韩三区在线观看| 国产精品美女久久久久久久网站| 一区二区三区在线观看网站| 美女任你摸久久| 99久久精品情趣| 欧美一区二区视频观看视频| 中文字幕欧美国产| 日韩av网站免费在线| 福利一区二区在线观看| 国产精品传媒入口麻豆| 亚洲一区在线视频观看| 国产又粗又猛又爽又黄91精品| 91免费看片在线观看| 日韩一区二区视频在线观看| ●精品国产综合乱码久久久久| 日本三级韩国三级欧美三级| 不卡在线视频中文字幕| 欧美一区二区三区啪啪| 自拍偷拍欧美精品| 激情图区综合网| 欧美性大战xxxxx久久久| 国产视频不卡一区| 美女视频一区二区三区| 91极品美女在线| 久久久av毛片精品| 日韩精品三区四区| 一本色道久久综合狠狠躁的推荐| 久久久久久综合| 免费久久99精品国产| 色香色香欲天天天影视综合网| 久久综合精品国产一区二区三区| 午夜精品福利视频网站| jlzzjlzz国产精品久久| 久久先锋影音av鲁色资源网| 日韩高清在线不卡| 欧美色图免费看| 亚洲另类色综合网站| 国产99精品视频| 精品福利二区三区| 日本成人在线视频网站| 欧美体内she精视频| 国产精品国产精品国产专区不片| 国产原创一区二区三区| 日韩视频在线永久播放| 水野朝阳av一区二区三区| 欧日韩精品视频| 亚洲乱码日产精品bd| 成人一级片网址| 国产三级欧美三级| 国内精品第一页| 精品sm在线观看| 韩国成人福利片在线播放| 日韩欧美不卡一区| 久久66热偷产精品| 日韩免费电影网站| 久久爱www久久做| 日韩欧美www| 久久99蜜桃精品| 欧美v国产在线一区二区三区| 男女激情视频一区| 91精品国产综合久久国产大片| 日韩精品午夜视频| 日韩一区二区三区四区| 日本欧美一区二区在线观看| 日韩限制级电影在线观看| 美女精品一区二区| 日韩精品最新网址| 国产精品一卡二| 国产欧美视频在线观看| 成人h精品动漫一区二区三区| 国产精品久久影院| 99精品视频免费在线观看| 专区另类欧美日韩| 欧美在线免费观看视频| 天堂成人免费av电影一区| 欧美一级黄色片| 国产一区二区三区久久久| 国产欧美精品一区二区色综合| 粉嫩av一区二区三区在线播放| 国产精品电影一区二区三区| 色香色香欲天天天影视综合网| 亚洲一区二区欧美激情| 欧美精品xxxxbbbb| 国内精品久久久久影院一蜜桃| 久久av资源网| 久久亚洲一区二区三区四区| 国产成人午夜片在线观看高清观看| 国产精品免费视频网站| 色综合天天综合网天天狠天天| 亚洲成a天堂v人片| 精品国产乱码久久| 成人av网站大全| 亚洲一级二级三级在线免费观看| 欧美精品777| 国产精品影音先锋| 亚洲欧洲日产国产综合网| 欧美日韩高清一区二区不卡| 狠狠色丁香久久婷婷综合_中| 国产精品国产自产拍高清av王其| 色欧美88888久久久久久影院| 天天色图综合网| 久久精品亚洲精品国产欧美| 91丨九色丨蝌蚪丨老版| 男人的天堂亚洲一区| 国产女主播视频一区二区| 欧美性猛交xxxx黑人交| 国产一区二区成人久久免费影院| 中文字幕亚洲不卡| 欧美一区二区三区免费在线看| 国产酒店精品激情| 亚洲一区二区三区中文字幕在线| 久久综合99re88久久爱| 在线观看91精品国产入口| 韩国精品在线观看| 亚洲大尺度视频在线观看| 久久精品一区二区三区四区| 欧美性色综合网| 久久99国产精品免费网站| 亚洲视频在线一区二区| 精品国产区一区| 欧美中文字幕一区二区三区亚洲| 国产原创一区二区| 视频一区视频二区中文| 国产精品人成在线观看免费| 欧美一级xxx| 在线观看成人小视频| 国产乱淫av一区二区三区| 午夜精品在线看| 亚洲日本韩国一区| 国产色产综合产在线视频| 7777精品伊人久久久大香线蕉| 国产成人免费视频| 久久国产日韩欧美精品| 亚洲一区二区三区四区在线| 中文字幕精品一区二区精品绿巨人| 538在线一区二区精品国产| 色综合久久综合| 国产高清精品在线| 久久精品国产免费看久久精品| 一区二区三区精品在线观看| 日本一区二区视频在线| 精品欧美一区二区三区精品久久| 欧美三级一区二区| 99re6这里只有精品视频在线观看| 精品在线播放午夜| 亚洲mv大片欧洲mv大片精品| 亚洲品质自拍视频| 中文字幕一区二区在线观看| 久久久影视传媒| 欧美白人最猛性xxxxx69交| 欧美一区二区三区在线看| 欧美日韩电影在线播放| 欧洲色大大久久| 91高清视频在线| 色欧美片视频在线观看在线视频| 成人妖精视频yjsp地址| 国产成人啪免费观看软件| 国产剧情在线观看一区二区| 精品中文字幕一区二区小辣椒| 免费精品视频在线| 久久国产综合精品| 韩国精品久久久| 国产精品一级在线|