Articles of Linux操作系统

如何将一个参数与空格传递给sed命令?

我在我的shell脚本中有以下function fnChangeTxt() { sed -i 's/<div id="'$1'"><p>*.*</<div id="'$1'"><p>'$2'</' /var/www/html/alarm.html } 我想使用下面的传递一个string通过$ 2参数的sed命令。 fnChangeTxt 'demo' 'This text to sed' 但是,这不起作用,产生和错误,我认为这是由于下面的命令工作正常的白色空间。 fnChangeTxt 'demo' 'This_text_to_sed' 有没有办法做到这一点与空间? 提前致谢。

SQLite数据库在Perl脚本中执行有问题

所以我是新来的Perl和SQLite的新手。 我有SQL经验,但是这个新的Perl语法正在引起我的注意。 所以我有一个问题,我试图使用Perl脚本来从IPtable日志中创build一个数据库来parsing表中的数据,并将通知发送给人。 该脚本还向用户发送通知,但我不认为这与这个问题有任何关系。 这是我收到的错误。 DBD :: SQLite :: db准备失败:没有这样的表:syslog_decom_notif在./send_notification_syslog.pl行251.无法调用方法“执行”在一个未定义的值在./send_notification_syslog.pl行252。 以下是我收到错误的代码: 2 sub select_contacts { 233 my @contact_info; 234 my $dbh = DBI->connect( DECOM_NOTIFICATION_DB ,"",""); 235 236 my ( $where_clause, @exec_params ) = build_where_clause(); 237 238 my $SQL = <<SQL; 239 select 240 contact 241 , status 242 , contact_mngr 243 , hostname 244 , […]

mktime和timelocal之间的区别

这两个function有什么区别? 这是我的理解,那些应该是相同的: http : //www.gnu.org/software/libc/manual/html_node/Broken_002ddown-Time.html 。 我写了这段代码来testing转换(Qt部分只是为了比较): #include <QCoreApplication> #include <QDateTime> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QDateTime datetime(QDate(2012, 3, 25), QTime(5, 15)); qDebug("Timestamp: %lld.", datetime.toMSecsSinceEpoch()/1000L); time_t timestamp; tm* timeinfo = localtime(&timestamp); timeinfo->tm_hour = 5; timeinfo->tm_mday = 25; timeinfo->tm_min = 15; timeinfo->tm_mon = 2; timeinfo->tm_year = 112; timeinfo->tm_sec = 0; qDebug("Timestamp: %ld.", […]

将一个variables传递给popen命令

我需要传递一个stringvariables到一个popen命令,我为了对一段encryption数据进行描述。 我需要使用的代码段是: char a[]="Encrypted data"; popen("openssl aes-256-cbc -d -a -salt <a-which is the data i have to pass here>","r"); 我应该怎么做才能将这个variables传递给命令。 我试着用: popen("openssl aes-256-cbc -d -a -salt %s",a,"r"); 但编译显示错误,popen传递了太多的论据。 请帮忙。 提前致谢。 操作平台:Linux

clock_gettime无法立即更新

更新 在检查时间分辨率之后,我们试图debugging内核空间中的问题。 unsigned long long task_sched_runtime(struct task_struct *p) { unsigned long flags; struct rq *rq; u64 ns = 0; rq = task_rq_lock(p, &flags); ns = p->se.sum_exec_runtime + do_task_delta_exec(p, rq); task_rq_unlock(rq, &flags); //printk("task_sched runtime\n"); return ns; } 我们的新实验显示时间p->se.sum_exec_runtime不会立即更新。 但是如果我们在函数内部添加printk() 。 时间会立即更新。 旧 我们正在开发一个Android程序。 但是,由函数threadCpuTimenanos()测量的时间在我们的平台上并不总是正确的。 经过试验,我们发现从clock_gettime返回的时间不会立即更新。 即使经过几次while循环迭代,我们得到的时间仍然不会改变。 这里是我们的示例代码: while(1) { test = 1; test = clock_gettime(CLOCK_THREAD_CPUTIME_ID, &now); […]

套接字发送并发保证

如果我在两个进程(或两个线程)之间共享一个套接字,并且在这两个进程中,我尝试发送一个阻塞的大消息(大于下划线协议缓冲区),是否保证这两个消息将按顺序发送? 还是有可能在内核中交错消息? 我主要对TCP over IP行为感兴趣,但是知道它是否根据套接字协议而变化将会很有趣。

C中的dynamic数组

最近我发现用c语言处理数组很烦人。 我不得不经常重新分配()来增加大小。 在C ++和Arraylist中没有标准的数据结构 我已经知道在linux内核中有一些数据结构,比如 kfifo,我们可以使用这个kfifo_in(),kfifo_out()函数。 但是这意味着用户会定义kfifo *指针; 来logging数组,并且这个variables不包含关于结构中包含的types的任何信息。 用户必须记住,当他尝试通过kfifo指针使用dynamic数组。 我想这可能有点混乱。 有没有更好的方法来处理这个问题? linux c编程中常见的解决scheme是什么?

Mysql.h c ++的参数太多了

现在,当我编译我收到: /usr/include/mysql/mysql.h:452: error: too many arguments to function int mysql_query(MYSQL*, const char*) 是否有限制的mysql.h的参数,如果是的话,我怎么解决它? #include <mysql/mysql.h> string unknown = "Unknown"; MYSQL *conn; conn = mysql_init(NULL); mysql_real_connect(conn, "localhost", "root", "password", "alert", 0, NULL, 0); mysql_query(conn, "INSERT INTO alert_tbl (alert_srcip, alert_country, alert_destip, alert_desthost, alert_destport, alert_bl) VALUES ('%s','%s','%s','%s','%s','%s')", src_ip,country_code,dest_ip,unknown,dest_prt,blip); mysql_close(conn); g++ test.c -o test -lstdc++ -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient

如何使用sed显示某个logging的某一列

我有这样一个列表: 5678:robert dylan :dgm :marketing :04/19/43 85000 我只想显示这个人的名字和指定。 我想用这个sed 。 我该怎么做?

Linux命令重新启动应用程序

例如 – 我有我想要重新启动的进程ID。 我应该用什么命令重新启动这个过程应用程序? 我没有find关于它的东西 谢谢!