我在关闭XMLWriter时遇到了一些麻烦.我可以成功写一次XML文件,但如果我再次尝试写(覆盖),我会得到异常:
"该进程无法访问文件'somefile.xml',因为它正由另一个进程使用."
Dim settings = New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = " "
settings.NewLineOnAttributes = True
Try
Dim writer As XmlWriter = XmlWriter.Create(System.IO.File.Create("somefile.xml"))
writer.WriteStartDocument(True)
writer.WriteStartElement("root")
For rowCounter As Integer = ds.Tables(0).Rows.Count - 1 To 0 Step -1
writer.WriteStartElement("someelement")
writer.WriteElementString("col0", ds.Tables(0).Rows(rowCounter)(0).ToString)
writer.WriteElementString("col1", ds.Tables(0).Rows(rowCounter)(1).ToString)
writer.WriteElementString("col2", ds.Tables(0).Rows(rowCounter)(2).ToString)
writer.WriteElementString("col3", ds.Tables(0).Rows(rowCounter)(3).ToString)
writer.WriteElementString("col4", ds.Tables(0).Rows(rowCounter)(4).ToString)
writer.WriteElementString("col5", ds.Tables(0).Rows(rowCounter)(5).ToString)
writer.WriteElementString("col6", ds.Tables(0).Rows(rowCounter)(6).ToString)
writer.WriteElementString("col7", ds.Tables(0).Rows(rowCounter)(7).ToString)
writer.WriteEndElement()
Next
writer.WriteEndElement()
writer.WriteEndDocument()
Catch ex As System.IO.IOException
MessageBox.Show(ex.Message)
Finally
writer.Flush()
writer.Close()
End Try
Run Code Online (Sandbox Code Playgroud) 我正在研究一个linux守护进程,并且在stdin/stdout上遇到了一些问题.通常由于守护程序的性质,您没有任何标准输入或标准输出.但是,我的守护进程中确实有一个函数,当守护进程第一次运行时调用该函数来指定守护进程成功运行所需的不同参数.当调用此函数时,终端变得如此迟缓,以至于我必须启动一个单独的shell并使用top杀死守护进程以获得响应式提示.现在我怀疑这与关闭stdin/stdout的分叉过程有关,但我不太确定如何解决这个问题.如果你们能够了解一下最值得赞赏的情况.谢谢.
编辑:
int main(argc, char *argv[]) {
/* setup signal handling */
/* check command line arguments */
pid_t pid, sid;
pid = fork();
if (pid < 0) {
exit(EXIT_FAILURE);
}
if(pid > 0){
exit(EXIT_SUCCESS);
}
sid = setsid();
if(sid < 0) {
exit(EXIT_FAILURE);
}
umask(027);
/* set syslogging */
/* do some logic to determine wether we are running the daemon for the first time and if we are call the one time function which uses fgets() to recieve …Run Code Online (Sandbox Code Playgroud) 我想知道是否可以用 C 语言以编程方式获取 Linux 机器上登录的用户数量?我做了一些研究并发现了 utmp.h,但由于并非所有程序都使用 utmp 日志记录,我认为它不够准确。预先感谢任何愿意提供帮助的人。
编辑:我很抱歉没有更具体,但是当我说登录用户时,我指的是任何通过 shell 登录的用户。基本上,当您运行不带命令行参数的 who 命令时,您会得到什么。
我目前正在开发一个需要单实例的linux守护进程(即限制为1个用户1进程).在不必使用getpid()手动将pid输出到/ var/run /然后使用它锁定它的最佳方法是什么flock()?
目前我正在开发一个C linux守护进程,它接受用户输入的SQL连接字符串,然后将信息存储到本地conf文件(客户端).守护程序的目的是以一定的时间间隔向SQL数据库提交数据,因为每次加载守护程序时,它都将查找本地conf以获取SQL连接字符串.此外,通过使用命令行参数-c,用户可以在信息更改时重新配置SQL连接字符串.是否有人愿意分享一种保护这个conf文件的方法,以便它不是纯文本.请记住,我仍然需要能够访问和读取conf文件,因为存在其他conf设置.先谢谢你们.
编辑:我最终计划使用SSL在客户端和SQL服务器之间提交数据.