Notas de estudo sobre tecnologia incorporada (sete)

função fprintf (formatar dados de saída para o arquivo) arquivo de
cabeçalho: #include <stdio.h>
Defina a função: int fprintf (FILE * stream, constchar * format, ...);
Descrição da função: fprintf () formatará a string de acordo com os parâmetros Para converter e formatar os dados e, em seguida, envie o resultado para o arquivo especificado pelo fluxo de parâmetros até que a string ('\ 0') apareça.
Valor de retorno: o número de caracteres efetivamente retornados é retornado quando bem-sucedido e -1 é retornado quando ocorre uma falha. A causa do erro é armazenada em erro.
Programação de controle de processo Linux Um
processo é uma atividade em execução de um programa com determinadas funções independentes e também é o menor
processo de unidade para alocação de recursos. E programa: o
processo é dinâmico, o programa é estático: o programa é uma coleção ordenada de código, o processo é a execução do programa. Geralmente, os processos não podem ser migrados entre computadores; os programas geralmente correspondem a arquivos, estáticos e podem ser copiados.
O processo é temporário e o programa é duradouro: o processo é de mudança de estado e o programa pode ser salvo por um longo tempo.
A composição dos processos e programas é diferente: a composição dos processos inclui programas, dados e blocos de controle de processo (ou seja, informações de status do processo).
Correspondência entre processos e programas: através de várias execuções, um programa pode corresponder a vários processos; através do relacionamento de chamada, um processo pode incluir vários programas

Ciclo de vida do processo:
criação: cada processo é criado por seu processo pai, o processo pode criar um processo filho e o processo filho pode criar um processo filho do processo filho.
Executar: vários processos podem existir ao mesmo tempo, a comunicação entre processos pode ser
cancelada: processo Pode ser revogado, encerrando assim a execução de um processo

O sistema Linux é um sistema com vários processos, e seus processos têm as características de paralelismo e não interferência. Em outras palavras, cada processo é uma unidade operacional independente, com seus próprios direitos e responsabilidades. Entre eles, cada processo é executado em um espaço de endereço virtual independente; portanto, mesmo que um processo seja anormal, ele não afetará outros processos no sistema.

O processo no Linux contém três segmentos: "segmento de dados", "segmento de código" e "segmento de pilha" .O segmento de
dados armazena variáveis ​​globais, constantes e espaço de dados alocado por dados dinâmicos.O
segmento de código armazena dados de código do programa O
segmento de pilha armazena o endereço de retorno do subprograma, os parâmetros do subprograma e as variáveis ​​locais do programa.

Process ID (PID): um número exclusivo que identifica um processo.
O ID do processo pai (PPID)
. O ID do usuário (UID) do
processo que iniciou o processo. Exclusão mútua significa que quando vários processos precisam usar um recurso compartilhado, é permitido no máximo um processo a qualquer momento. Use, outros processos que desejam usar o recurso devem esperar até que o recurso seja liberado, o que ocupa o recurso.
No sistema operacional, os recursos que apenas podem ser acessados ​​por um processo por vez são chamados de
sincronização crítica de processos de recursos : um grupo de processos simultâneos executados em uma determinada ordem é chamado de sincronização entre processos, e um grupo de processos simultâneos com um relacionamento de sincronização é chamado de processo cooperativo. As informações enviadas entre os processos cooperativos são chamadas de mensagem ou evento
: Impasse: vários processos formam um impasse devido à competição por recursos. Sem força externa, esses processos nunca serão capazes de avançar.

Obtenha o ID
#include <sys / types.h>
#include <unistd.h>
pid_t getpid (void) Obtenha o ID do processo
pid_t getppid (void) Obtenha o ID do processo pai

Criação de processo
#include <unistd.h> função
pid_t fork (void)
: crie um processo filho, a coisa maravilhosa sobre fork é que ele é chamado uma vez, mas retorna duas vezes, pode ter três valores de retorno diferentes.
O valor de retorno é 0 é o processo filho, o valor de retorno é maior que 0 é o processo pai, o valor de retorno é -1 é um erro

pit_t vfork (void)
vfork () criará um novo processo filho, seu processo filho copiará os dados do processo pai e o espaço de pilha, e herdará o código do usuário do processo pai, o código do grupo, as variáveis ​​de ambiente, o código do arquivo aberto, o diretório de trabalho E restrições de recursos.
O processo filho não herdará o bloqueio do arquivo e os sinais não processados ​​do processo pai.
Observe que o Linux não garante que o processo filho seja executado antes ou depois do processo pai, portanto, preste atenção à ocorrência de conflitos ou condições de corrida ao escrever programas

família de funções exec
#include <unistd.h>
int execl (const char * caminho, const char * arg1…)
Parâmetros: caminho: o nome do programa executado (incluindo o caminho completo)
arg1 ~ argn: parâmetros da linha de comando exigidos pelo programa executado

Publicado 14 artigos originais · Gosto1 · Visitas 477

Acho que você gosta

Origin blog.csdn.net/a1152946932/article/details/105362818
Recomendado
Clasificación