我是C系统编程的新手。
这里我尝试编写一个程序,每隔(n = 2)秒更改一次PID。但是在编译时,我每次都得到相同的PID。 PID永远不会改变。有人有想法吗?
这是我的代码:
Sub RemoveSurroundingSingleQuotes()
Dim arr() As Variant
Dim wrd As String
Dim iStart As Long
Dim iEnd As Long
arr = Array("'wrd1'", "''wrd3''")
For i = LBound(arr) To UBound(arr)
wrd = arr(i)
Debug.Print "word before: " & wrd
iStart = 1
iEnd = Len(wrd)
Do While Mid(wrd, iStart, 1) = "'" And iStart < iEnd
iStart = iStart + 1
Loop
Do While Mid(wrd, iEnd, 1) = "'" And iEnd > iStart
iEnd = iEnd - 1
Loop
wrd = Mid(wrd, iStart, iEnd - iStart + 1)
Debug.Print "word after: " & wrd & vbCr & "--------------"
Next
End Sub
答案 0 :(得分:3)
PID不变的原因是因为进程pid永远不会改变。并且在检查PID的值时,代码始终在父进程中。
现在,每个子进程都将收到自己的PID。您可以让孩子在退出前获取/显示其PID。
答案 1 :(得分:1)
这个
else if (fils ==0 ){
//<- here
//printf("my pid is %d\n", getpid());
exit(0);
}
是您已分拆的新流程的范围。
您可以将此范围视为其自身的main
,并且此范围将在具有其自己的pid
的不同流程中运行。
(您可能需要_exit
而不是exit
来防止双重刷新stdio
个缓冲区。(子进程获取副本))